pgsql: Fix handling of namespace nodes in xpath() (xml) - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Fix handling of namespace nodes in xpath() (xml)
Date
Msg-id E1wXqfK-0025QV-1s@gemulon.postgresql.org
Whole thread
List pgsql-committers
Fix handling of namespace nodes in xpath() (xml)

xpath() attempted to call xmlCopyNode() and xmlNodeDump() on a
XML_NAMESPACE_DECL, finishing with a confusing error:
=# SELECT xpath('//namespace::foo', '<root xmlns:foo="http://127.0.0.1"/>');
ERROR:  53200: could not copy node
CONTEXT:  SQL function "xpath" statement 1

xpath() is changed so as it goes through xmlXPathCastNodeToString()
instead, that is able to handle namespace nodes.  xml2 uses the same
solution.  This issue has been discovered while digging into
9d33a5a804db.

Author: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/aioT7ui_ZJ9RMlfM@paquier.xyz
Backpatch-through: 14

Branch
------
REL_18_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/4c777d6dd9c9ac8fc8316329745ed1177989379d

Modified Files
--------------
src/backend/utils/adt/xml.c         | 4 +++-
src/test/regress/expected/xml.out   | 6 ++++++
src/test/regress/expected/xml_1.out | 5 +++++
src/test/regress/sql/xml.sql        | 1 +
4 files changed, 15 insertions(+), 1 deletion(-)


pgsql-committers by date:

Previous
From: Fujii Masao
Date:
Subject: pgsql: amcheck: Fix missing allequalimage corruption report
Next
From: Amit Langote
Date:
Subject: pgsql: Fix out-of-bounds write in RI fast-path batch on re-entry