mike            Tue May 30 17:40:52 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src    NEWS 
    /php-src/ext/pcntl  pcntl.c 
  Log:
  - fix bug #37635 (parameter of pcntl signal handler is trashed)
  
  
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2027.2.547.2.65&r2=1.2027.2.547.2.66&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.65 php-src/NEWS:1.2027.2.547.2.66
--- php-src/NEWS:1.2027.2.547.2.65      Tue May 30 14:51:20 2006
+++ php-src/NEWS        Tue May 30 17:40:52 2006
@@ -49,10 +49,11 @@
 - Added RFC2397 (data: stream) support. (Marcus)
 - Fixed memory leaks in openssl streams context options (Pierre)
 - Fixed handling of extremely long paths inside tempnam() function. (Ilia)
+- Fixed bug #37635 (parameter of pcntl signal handler is trashed). (Mike)
 - Fixed bug #37632 (Protected method access problem). (Marcus)
-- Fixed bug #37616: DATE_RFC822 does not product RFC 822 dates. (Hannes
-  Magnusson, Derick)
 - Fixed bug #37620 (mysqli_ssl_set validation is innappropriate). (Georg)
+- Fixed bug #37616 (DATE_RFC822 does not product RFC 822 dates).
+  (Hannes Magnusson, Derick)
 - Fixed bug #37614 (Class name lowercased in error message). (Johannes)
 - Fixed bug #37587 (var without attribute causes segfault). (Marcus)
 - Fixed bug #37586 (Bumped minimum PCRE version to 6.6, needed for recursion
http://cvs.php.net/viewcvs.cgi/php-src/ext/pcntl/pcntl.c?r1=1.48.2.2&r2=1.48.2.2.2.1&diff_format=u
Index: php-src/ext/pcntl/pcntl.c
diff -u php-src/ext/pcntl/pcntl.c:1.48.2.2 
php-src/ext/pcntl/pcntl.c:1.48.2.2.2.1
--- php-src/ext/pcntl/pcntl.c:1.48.2.2  Sun Jan  1 12:50:10 2006
+++ php-src/ext/pcntl/pcntl.c   Tue May 30 17:40:52 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: pcntl.c,v 1.48.2.2 2006/01/01 12:50:10 sniper Exp $ */
+/* $Id: pcntl.c,v 1.48.2.2.2.1 2006/05/30 17:40:52 mike Exp $ */
 
 #define PCNTL_DEBUG 0
 
@@ -693,16 +693,19 @@
        PCNTL_G(head) = NULL; /* simple stores are atomic */
        
        /* Allocate */
-       MAKE_STD_ZVAL(param);
-       MAKE_STD_ZVAL(retval);
 
        while (queue) {
                if (zend_hash_index_find(&PCNTL_G(php_signal_table), 
queue->signo, (void **) &handle)==SUCCESS) {
+                       MAKE_STD_ZVAL(retval);
+                       MAKE_STD_ZVAL(param);
+                       ZVAL_NULL(retval);
                        ZVAL_LONG(param, queue->signo);
 
                        /* Call php signal handler - Note that we do not report 
errors, and we ignore the return value */
                        /* FIXME: this is probably broken when multiple signals 
are handled in this while loop (retval) */
                        call_user_function(EG(function_table), NULL, *handle, 
retval, 1, &param TSRMLS_CC);
+                       zval_ptr_dtor(&param);
+                       zval_ptr_dtor(&retval);
                }
 
                next = queue->next;
@@ -713,10 +716,6 @@
 
        /* Re-enable queue */
        PCNTL_G(processing_signal_queue) = 0;
-
-       /* Clean up */
-       efree(param);
-       efree(retval);
 }
 
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to