diff options
| -rw-r--r-- | php-5.4.8-libxml.patch | 50 | ||||
| -rw-r--r-- | php-fpm-www.conf | 3 | ||||
| -rw-r--r-- | php54.spec | 22 | 
3 files changed, 72 insertions, 3 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 + diff --git a/php-fpm-www.conf b/php-fpm-www.conf index a5b8a13..9cdbb4f 100644 --- a/php-fpm-www.conf +++ b/php-fpm-www.conf @@ -221,5 +221,6 @@ php_admin_flag[log_errors] = on  ;php_admin_value[memory_limit] = 128M  ; Set session path to a directory owned by process user -php_admin_value[session.save_path] = /var/lib/php/session +php_value[session.save_handler] = files +php_value[session.save_path] = /var/lib/php/session @@ -26,7 +26,7 @@  %global mysql_config %{_libdir}/mysql/mysql_config  #global snapdate   201201041830 -%global rcver      RC1 +#global rcver      RC1  # Optional components; pass "--with mssql" etc to rpmbuild.  %global with_oci8   %{?_with_oci8:1}%{!?_with_oci8:0} @@ -65,7 +65,7 @@ Version: 5.4.8  %if 0%{?snapdate:1}%{?rcver:1}  Release: 0.3.%{?snapdate}%{?rcver}%{?dist}  %else -Release: 1%{?dist} +Release: 1%{?dist}.1  %endif  License: PHP  Group: Development/Languages @@ -100,6 +100,8 @@ Patch20: php-5.4.7-imap.patch  Patch21: php-5.4.7-odbctimer.patch  # https://bugs.php.net/63149 check sqlite3_column_table_name  Patch22: php-5.4.7-sqlite.patch +# https://bugs.php.net/61557 crash in libxml +Patch23: php-5.4.8-libxml.patch  # Functional changes  Patch40: php-5.4.0-dlopen.patch @@ -192,6 +194,7 @@ executing PHP scripts, /usr/bin/php, and the CGI interface.  Group: Development/Languages  Summary: PHP FastCGI Process Manager  Requires: php-common%{?_isa} = %{version}-%{release} +Requires(pre): /usr/sbin/useradd  %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7  BuildRequires: systemd-units  Requires: systemd-units @@ -685,6 +688,7 @@ httpd -V  | grep -q 'threaded:.*yes' && exit 1  %patch20 -p1 -b .imap  %patch21 -p1 -b .odbctimer  %patch22 -p1 -b .tablename +%patch23 -p1 -b .libxmlcrash  %patch40 -p1 -b .dlopen  %patch41 -p1 -b .easter @@ -1317,6 +1321,15 @@ echo -e "You should consider upgrading to a supported release.\n"  %if %{with_fpm} +%pre fpm +# Add the "apache" user as we don't require httpd +getent group  apache >/dev/null || \ +  groupadd -g 48 -r apache +getent passwd apache >/dev/null || \ +  useradd -r -u 48 -g apache -s /sbin/nologin \ +    -d %{contentdir} -c "Apache" apache +exit 0 +  %post fpm  %if 0%{?systemd_post:1}  %systemd_post php-fpm.service @@ -1499,6 +1512,11 @@ fi  %changelog +* Thu Oct 18 2012 Remi Collet <remi@fedoraproject.org> 5.4.8-1 +- update to 5.4.8 +- improve comments for session path +- php-fpm: create apache user if needed +  * Fri Oct  5 2012 Remi Collet <remi@fedoraproject.org> 5.4.8-0.3.RC1  - provides php-phar  | 
