patch from Daniel Zimmermann fixing a memory leak in an edge case, solves

* threads.c: patch from Daniel Zimmermann fixing a memory leak
  in an edge case, solves #562230
Daniel

svn path=/trunk/; revision=3809
diff --git a/ChangeLog b/ChangeLog
index 5d40998..b2c0d39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Jan 18 15:55:18 CET 2009 Daniel Veillard <daniel@veillard.com>
+
+	* threads.c: patch from Daniel Zimmermann fixing a memory leak
+	  in an edge case, solves #562230
+
 Sun Jan 18 15:06:05 CET 2009 Daniel Veillard <daniel@veillard.com>
 
 	* include/libxml/parserInternals.h SAX2.c: add a new define
diff --git a/threads.c b/threads.c
index 23cb200..fde0a62 100644
--- a/threads.c
+++ b/threads.c
@@ -698,6 +698,7 @@
 	if (p == NULL) {
             xmlGenericError(xmlGenericErrorContext,
                             "xmlGetGlobalState: out of memory\n");
+            xmlFreeGlobalState(tsd);
 	    return(NULL);
 	}
         p->memory = tsd;