From: Tom Lane Date: Sat, 12 Jan 2008 21:14:08 +0000 (+0000) Subject: It turns out the LIBXML_TEST_VERSION macro calls xmlInitParser(). X-Git-Tag: REL8_3_RC2~33 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bbf8706ae6e7a307ac0739d9df51b47832c7d4b;p=postgresql It turns out the LIBXML_TEST_VERSION macro calls xmlInitParser(). Therefore we must xmlCleanupParser(), or we risk leaving behind dangling pointers to whatever memory context is current when xml_init() is called. This seems to fix bug #3860, though we might still want the more invasive solution being worked on by Alvaro. --- diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 622d4e05f7..411cd6c22e 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.66 2008/01/12 10:50:03 neilc Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.67 2008/01/12 21:14:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -958,6 +958,9 @@ xml_init(void) /* Check library compatibility */ LIBXML_TEST_VERSION; + /* The above calls xmlInitParser(); must clean up dangling pointers */ + xmlCleanupParser(); + first_time = false; } else