Commit:    14f5732096575f3c4ff0438e6650238370cb465c
Author:    Stanislav Malyshev <s...@php.net>         Sun, 18 Aug 2013 17:20:56 
-0700
Parents:   9973658a44090cbf67cb8a1d93f00d46a4330356
Branches:  PHP-5.4 PHP-5.5 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=14f5732096575f3c4ff0438e6650238370cb465c

Log:
Fix bug #65470  Segmentation fault in zend_error() with --enable-dtrace

Bugs:
https://bugs.php.net/65470

Changed paths:
  M  NEWS
  M  Zend/zend.c


Diff:
diff --git a/NEWS b/NEWS
index 1e4e0fb..ff79a29 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ PHP                                                             
           NEWS
 ?? ??? 2013, PHP 5.4.19
 
 - Core:
+  . Fixed bug #65470 (Segmentation fault in zend_error() with 
+    --enable-dtrace). (Chris Jones)
   . Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference
     fails). (Laruence)
   . Fixed bug #65304 (Use of max int in array_sum). (Laruence)
diff --git a/Zend/zend.c b/Zend/zend.c
index 8560308..1629228 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -1091,17 +1091,19 @@ ZEND_API void zend_error(int type, const char *format, 
...) /* {{{ */
                error_filename = "Unknown";
        }
 
-       va_start(args, format);
-
 #ifdef HAVE_DTRACE
        if(DTRACE_ERROR_ENABLED()) {
                char *dtrace_error_buffer;
+               va_start(args, format);
                zend_vspprintf(&dtrace_error_buffer, 0, format, args);
                DTRACE_ERROR(dtrace_error_buffer, (char *)error_filename, 
error_lineno);
                efree(dtrace_error_buffer);
+               va_end(args);
        }
 #endif /* HAVE_DTRACE */
 
+       va_start(args, format);
+
        /* if we don't have a user defined error handler */
        if (!EG(user_error_handler)
                || !(EG(user_error_handler_error_reporting) & type)


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

Reply via email to