laruence Wed, 04 Jan 2012 08:25:06 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=321753
Log: Fixed bug #60627 (httpd.worker segfault on startup with php_value) Bug: https://bugs.php.net/60627 (Analyzed) httpd.worker segfault on startup with php_value Changed paths: U php/php-src/branches/PHP_5_4/NEWS U php/php-src/branches/PHP_5_4/Zend/zend.h U php/php-src/branches/PHP_5_4/Zend/zend_signal.h U php/php-src/trunk/Zend/zend.h U php/php-src/trunk/Zend/zend_signal.h Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2012-01-04 08:13:58 UTC (rev 321752) +++ php/php-src/branches/PHP_5_4/NEWS 2012-01-04 08:25:06 UTC (rev 321753) @@ -5,6 +5,8 @@ . Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax). (Dmitry) . Fixed bug #60611 (Segmentation fault with Cls::{expr}() syntax). (Laruence) . Fixed bug #55871 (Interruption in substr_replace()). (Stas) + . Fixed bug #60627 (httpd.worker segfault on startup with php_value). + (Laruence) - SAPI: . Fixed bug #55500 (Corrupted $_FILES indices lead to security concern). Modified: php/php-src/branches/PHP_5_4/Zend/zend.h =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend.h 2012-01-04 08:13:58 UTC (rev 321752) +++ php/php-src/branches/PHP_5_4/Zend/zend.h 2012-01-04 08:25:06 UTC (rev 321753) @@ -709,8 +709,8 @@ #else #include "zend_signal.h" -#define HANDLE_BLOCK_INTERRUPTIONS() SIGG(depth)++; -#define HANDLE_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } +#define HANDLE_BLOCK_INTERRUPTIONS() ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() +#define HANDLE_UNBLOCK_INTERRUPTIONS() ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() #endif BEGIN_EXTERN_C() Modified: php/php-src/branches/PHP_5_4/Zend/zend_signal.h =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_signal.h 2012-01-04 08:13:58 UTC (rev 321752) +++ php/php-src/branches/PHP_5_4/Zend/zend_signal.h 2012-01-04 08:25:06 UTC (rev 321753) @@ -69,9 +69,13 @@ BEGIN_EXTERN_C() ZEND_API extern int zend_signal_globals_id; END_EXTERN_C() +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() if (EXPECTED(zend_signal_globals_id)) { SIGG(depth)++; } +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id) && UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #else /* ZTS */ # define SIGG(v) (zend_signal_globals.v) extern ZEND_API zend_signal_globals_t zend_signal_globals; +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() SIGG(depth)++; +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #endif /* not ZTS */ # define SIGNAL_BEGIN_CRITICAL() sigset_t oldmask; \ Modified: php/php-src/trunk/Zend/zend.h =================================================================== --- php/php-src/trunk/Zend/zend.h 2012-01-04 08:13:58 UTC (rev 321752) +++ php/php-src/trunk/Zend/zend.h 2012-01-04 08:25:06 UTC (rev 321753) @@ -709,8 +709,8 @@ #else #include "zend_signal.h" -#define HANDLE_BLOCK_INTERRUPTIONS() SIGG(depth)++; -#define HANDLE_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } +#define HANDLE_BLOCK_INTERRUPTIONS() ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() +#define HANDLE_UNBLOCK_INTERRUPTIONS() ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() #endif BEGIN_EXTERN_C() Modified: php/php-src/trunk/Zend/zend_signal.h =================================================================== --- php/php-src/trunk/Zend/zend_signal.h 2012-01-04 08:13:58 UTC (rev 321752) +++ php/php-src/trunk/Zend/zend_signal.h 2012-01-04 08:25:06 UTC (rev 321753) @@ -69,9 +69,13 @@ BEGIN_EXTERN_C() ZEND_API extern int zend_signal_globals_id; END_EXTERN_C() +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() if (EXPECTED(zend_signal_globals_id)) { SIGG(depth)++; } +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id) && UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #else /* ZTS */ # define SIGG(v) (zend_signal_globals.v) extern ZEND_API zend_signal_globals_t zend_signal_globals; +# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() SIGG(depth)++; +# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); } #endif /* not ZTS */ # define SIGNAL_BEGIN_CRITICAL() sigset_t oldmask; \
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php