Thread: pgsql: Fix crash with old libxml2

pgsql: Fix crash with old libxml2

From
Alvaro Herrera
Date:
Fix crash with old libxml2

Certain libxml2 versions (such as the 2.7.6 commonly seen in older
distributions, but apparently only on x86_64) contain a bug that causes
xmlCopyNode, when called on a XML_DOCUMENT_NODE, to return a node that
xmlFreeNode crashes on.  Arrange to call xmlFreeDoc instead of
xmlFreeNode for those nodes.

Per buildfarm members lapwing and grison.

Author: Pavel Stehule, light editing by Álvaro.
Discussion: https://postgr.es/m/20190308024436.GA2374@alvherre.pgsql

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/2e616dee9e601d36462dc4cc48eb0b6a1ff20051

Modified Files
--------------
src/backend/utils/adt/xml.c | 58 +++++++++++++++++++++++++++++++--------------
1 file changed, 40 insertions(+), 18 deletions(-)


Re: pgsql: Fix crash with old libxml2

From
Alvaro Herrera
Date:
On 2019-Mar-08, Alvaro Herrera wrote:

> Fix crash with old libxml2
> 
> Certain libxml2 versions (such as the 2.7.6 commonly seen in older
> distributions, but apparently only on x86_64) contain a bug that causes
> xmlCopyNode, when called on a XML_DOCUMENT_NODE, to return a node that
> xmlFreeNode crashes on.  Arrange to call xmlFreeDoc instead of
> xmlFreeNode for those nodes.

I forgot to note in the commit message that the crash was introduced
yesterday with commit 251cf2e27bec98274e8bb002608680bdc211319e, "Fix
minor deficiencies in XMLTABLE, xpath(), xmlexists()".

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services