]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix incompatibility with libxml2 >= 2.14
authorMichael Paquier <michael@paquier.xyz>
Sun, 6 Jul 2025 23:54:37 +0000 (08:54 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sun, 6 Jul 2025 23:54:37 +0000 (08:54 +0900)
libxml2 has deprecated the members of xmlBuffer, and it is recommended
to access them with dedicated routines.  We have only one case in the
tree where this shows an impact: xml2/xpath.c where "content" was
getting directly accessed.  The rest of the code looked fine, checking
the PostgreSQL code with libxml2 close to the top of its "2.14" branch.

xmlBufferContent() exists since year 2000 based on a check of the
upstream libxml2 tree, so let's switch to it.

Like 400928b83bd2, backpatch all the way down as this can have an impact
on all the branches already released once newer versions of libxml2 get
more popular.

Reported-by: Walid Ibrahim <walidib@amazon.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/aGdSdcR4QTjEHX6s@paquier.xyz
Backpatch-through: 13

contrib/xml2/xpath.c

index 212cb74aa220b3c6825d0670a1370d5206a0e4c9..94bb31434c89be9a43b9ee4116ed2a665addecbc 100644 (file)
@@ -174,7 +174,7 @@ pgxmlNodeSetToText(xmlNodeSetPtr nodeset,
                xmlBufferWriteCHAR(buf, toptagname);
                xmlBufferWriteChar(buf, ">");
        }
-       result = xmlStrdup(buf->content);
+       result = xmlStrdup(xmlBufferContent(buf));
        xmlBufferFree(buf);
        return result;
 }