]> granicus.if.org Git - php/commitdiff
Fix bug #65470 Segmentation fault in zend_error() with --enable-dtrace
authorStanislav Malyshev <stas@php.net>
Mon, 19 Aug 2013 00:20:56 +0000 (17:20 -0700)
committerStanislav Malyshev <stas@php.net>
Mon, 19 Aug 2013 00:22:25 +0000 (17:22 -0700)
NEWS
Zend/zend.c

diff --git a/NEWS b/NEWS
index 1e4e0fb9bba9dd18c3454e8bbdd1201285b1b97c..ff79a29bd7ce2180f420d26b6c0802acd2ebc8e8 100644 (file)
--- 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)
index 85603082c0169bd66668a1225cff1a85263d4c7f..162922866b6db9f6945bf7d98a26fe8fffd793ee 100644 (file)
@@ -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)