diff options
author | Remi Collet <fedora@famillecollet.com> | 2012-10-18 10:53:17 +0200 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2012-10-18 10:53:17 +0200 |
commit | d00de60443f8d5571aa261198c546e8b74d9d803 (patch) | |
tree | cc0b8e43399fa07661d1ca4fef5e8422eeabc42b /php-5.4.8-libxml.patch | |
parent | 77247072a4397f241117b8e9a2c23a5aeff41db8 (diff) |
update to 5.4.8
Diffstat (limited to 'php-5.4.8-libxml.patch')
-rw-r--r-- | php-5.4.8-libxml.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/php-5.4.8-libxml.patch b/php-5.4.8-libxml.patch new file mode 100644 index 0000000..d9e92e9 --- /dev/null +++ b/php-5.4.8-libxml.patch @@ -0,0 +1,50 @@ +From 100bb87f5517484d75191ff4cdbbc1fdf579791d Mon Sep 17 00:00:00 2001 +From: jjacky <i.am.jack.mail@gmail.com> +Date: Fri, 11 May 2012 22:38:05 +0200 +Subject: [PATCH] CGI/FPM process could crash when using libxml, fixes #61557 + +Since d8bddb9665637d96f20dc4a2ae5668ba376f3b17 some SAPI would only setup/reset +callbacks to libxml once, instead of for each request processed. However, this +also included a callback for structured errors, which should remain per request +(as it can be defined through PHP's libxml_use_internal_errors). + +As a result, after the internal handler was set in a request, processing another +request would result in the handler being triggered while the memory associated +with it (LIBXML(error_list)) had been free-d/reset, leading to the process +segfaulting. + +This reset the handler for structured errors after each request. + +(see #61325 also possibly the same bug) +--- + ext/libxml/libxml.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c +index e42d845..92c1099 100644 +--- a/ext/libxml/libxml.c ++++ b/ext/libxml/libxml.c +@@ -851,7 +851,6 @@ static PHP_MSHUTDOWN_FUNCTION(libxml) + { + if (!_php_libxml_per_request_initialization) { + xmlSetGenericErrorFunc(NULL, NULL); +- xmlSetStructuredErrorFunc(NULL, NULL); + + xmlParserInputBufferCreateFilenameDefault(NULL); + xmlOutputBufferCreateFilenameDefault(NULL); +@@ -867,11 +866,11 @@ static int php_libxml_post_deactivate() + /* reset libxml generic error handling */ + if (_php_libxml_per_request_initialization) { + xmlSetGenericErrorFunc(NULL, NULL); +- xmlSetStructuredErrorFunc(NULL, NULL); + + xmlParserInputBufferCreateFilenameDefault(NULL); + xmlOutputBufferCreateFilenameDefault(NULL); + } ++ xmlSetStructuredErrorFunc(NULL, NULL); + + if (LIBXML(stream_context)) { + /* the steam_context resource will be released by resource list destructor */ +-- +1.7.10.1 + |