pgsql: Free libxml2/libxslt resources in a safer order.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Free libxml2/libxslt resources in a safer order.
Date: 2014-11-27 16:13:40
Message-ID: E1Xu1hM-0002Wv-Vn@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Free libxml2/libxslt resources in a safer order.

Mark Simonetti reported that libxslt sometimes crashes for him, and that
swapping xslt_process's object-freeing calls around to do them in reverse
order of creation seemed to fix it. I've not reproduced the crash, but
valgrind clearly shows a reference to already-freed memory, which is
consistent with the idea that shutdown of the xsltTransformContext is
trying to reference the already-freed stylesheet or input document.
With this patch, valgrind is no longer unhappy.

I have an inquiry in to see if this is a libxslt bug or if we're just
abusing the library; but even if it's a library bug, we'd want to adjust
our code so it doesn't fail with unpatched libraries.

Back-patch to all supported branches, because we've been doing this in
the wrong(?) order for a long time.

Branch
------
REL9_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/e2d0c25917bef8c25bf6e9b1bcf2a75dbf8f07f0

Modified Files
--------------
contrib/xml2/xslt_proc.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2014-11-27 16:13:41 pgsql: Free libxml2/libxslt resources in a safer order.
Previous Message Stephen Frost 2014-11-27 06:16:09 pgsql: Rename pg_rowsecurity -> pg_policy and other fixes