GNOME Bugzilla – Bug 305662
Function libxslt_xsltPythonCleanup doesn't set variables libxslt_extModule... to NULL
Last modified: 2011-01-27 05:26:11 UTC
Please describe the problem: libxslt_xsltPythonCleanup calls several xmlHashFree() but doesn't clear the hash table pointers thereafter. So a Python call to libxslt.pythonCleanup() followed by a libxslt.registerExtModuleFunction(...) generates a segfault. Steps to reproduce: 1. libxslt.registerExtModuleFunction(...) 2. libxslt.pythonCleanup() 3. libxslt.registerExtModuleFunction(...) Actual results: segfault Expected results: Does this happen every time? yes Other information: diff -Naur libxslt-1.1.12-old/python/libxslt.c libxslt-1.1.12/python/libxslt.c --- libxslt-1.1.12-old/python/libxslt.c 2004-07-02 15:49:07.000000000 +0200 +++ libxslt-1.1.12/python/libxslt.c 2005-05-27 15:54:00.055235480 +0200 @@ -845,15 +845,19 @@ if (libxslt_extModuleFunctions != NULL) { xmlHashFree(libxslt_extModuleFunctions, deallocateCallback); + libxslt_extModuleFunctions = NULL; } if (libxslt_extModuleElements != NULL) { xmlHashFree(libxslt_extModuleElements, deallocateCallback); + libxslt_extModuleElements = NULL; } if (libxslt_extModuleElementPreComp != NULL) { xmlHashFree(libxslt_extModuleElementPreComp, deallocateCallback); + libxslt_extModuleElementPreComp = NULL; } if (libxslt_extModuleClasses != NULL) { xmlHashFree(libxslt_extModuleClasses, deallocateClasse); + libxslt_extModuleClasses = NULL; } xsltCleanupGlobals(); Py_INCREF(Py_None); p
this is a patch? can you does reproduce this bug?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!