Edit report at https://bugs.php.net/bug.php?id=65470&edit=1

 ID:                 65470
 Updated by:         s...@php.net
 Reported by:        s...@php.net
 Summary:            Segmentation fault in zend_error() with
                     --enable-dtrace
-Status:             Assigned
+Status:             Open
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   Linux
 PHP Version:        5.4Git-2013-08-18 (Git)
-Assigned To:        sixd
+Assigned To:        
 Block user comment: N
 Private report:     N

 New Comment:

The patch tested OK and can be applied to PHP 5.4, 5.5 and master.  This 
requires 
zend karma, which I don't have.


Previous Comments:
------------------------------------------------------------------------
[2013-08-18 05:05:12] s...@php.net

The following patch has been added/updated:

Patch Name: bug65470
Revision:   1376802312
URL:        
https://bugs.php.net/patch-display.php?bug=65470&patch=bug65470&revision=1376802312

------------------------------------------------------------------------
[2013-08-18 04:41:33] s...@php.net

I'm currently testing a patch.

------------------------------------------------------------------------
[2013-08-18 04:40:25] s...@php.net

Description:
------------
A segmentation fault can occur in zend_error() with --enable-dtrace.
The zend_vspprintf() call in the DTRACE_ERROR_ENABLED() block leaves
args undefined:

  "If ap is passed to a function that uses va_arg(ap,type) then the
  value of ap is undefined after the return of that function."

When args is used again later in zend_error(), a seg fault can occur.

Test script:
---------------
As root:
-------------------
# dtrace -Z -s error.d 
dtrace: script 'error.d' matched 0 probes
CPU     ID                    FUNCTION:NAME
  0      6                 zend_error:error PHP error
--------------------


As a normal user:
--------------------
$ php error.php 
Segmentation fault (core dumped)
--------------------

Where error.d is:

php*:::error { printf("PHP error\n"); }

and error.php is:

<?php trigger_error('This is an error', E_USER_ERROR); ?>




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=65470&edit=1

Reply via email to