From:             misc at sopic dot com
Operating system: Suse Linux 9.0
PHP version:      5.0.0
PHP Bug Type:     Reproducible crash
Bug description:  array_walk_recursive causes segfault

Description:
------------
Execution of the code below causes Apache 2.0.49 (Prefork) to exit with a
segfault.

Apache error_log:

[Wed Jul 28 23:25:22 2004] [notice] child pid 30256 exit signal
Segmentation fault (11)
[Wed Jul 28 23:25:23 2004] [notice] child pid 30252 exit signal
Segmentation fault (11)
[Wed Jul 28 23:25:23 2004] [notice] child pid 32257 exit signal
Segmentation fault (11)
[Wed Jul 28 23:25:24 2004] [notice] child pid 32314 exit signal
Segmentation fault (11)
[Wed Jul 28 23:25:25 2004] [notice] child pid 32316 exit signal
Segmentation fault (11)

'./configure' '--with-apxs2=/usr/local/apache2-php5/bin/apxs'
'--with-mysql=/usr/local/mysql' '--with-zlib' '--with-xml' '--with-gd'
'--with-ttf=/usr' '--with-jpeg-dir=/usr' '--with-xpm-dir=/usr'
'--enable-gd-native-ttf' '--with-mcrypt=/usr' '--enable-calendar'
'--enable-bcmath' '--with-dom' '--with-xmlrpc' '--with-gettext'
'--with-ftp' '--enable-shared' '--enable-memory-limit'
'--with-freetype-dir=/usr' '--with-ldap=/usr' '--disable-short-tags'
'--with-dom=/usr'

Reproduce code:
---------------
<?php 

function mysqlEscapeArray (&$array)
{
        if (!is_array($array)) {
                return false;   
        }
        
        function my_escape_function (&$value, $key)
        {
                $value = mysql_escape_string($value);
        }
        
        array_walk_recursive($array, 'my_escape_function');
        
        return true;
}

$foobar = array('test' => array("foo" => "Zack's Laptop"));
mysqlEscapeArray($foobar);

?>

Expected result:
----------------
Array with escaped values

Actual result:
--------------
[New Thread 16384 (LWP 9165)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 9165)]
0x401ab05a in _int_malloc () from /lib/i686/libc.so.6
(gdb) bt
#0  0x401ab05a in _int_malloc () from /lib/i686/libc.so.6
#1  0x401aa06c in malloc () from /lib/i686/libc.so.6
#2  0x403f34e6 in _emalloc (size=256) at
/usr/local/src/php-5.0.0/Zend/zend_alloc.c:182
#3  0x40406957 in zend_stack_init (stack=0x404cd2dc) at
/usr/local/src/php-5.0.0/Zend/zend_stack.c:28
#4  0x403fd9eb in shutdown_executor () at
/usr/local/src/php-5.0.0/Zend/zend_execute_API.c:232
#5  0x40408060 in zend_deactivate () at
/usr/local/src/php-5.0.0/Zend/zend.c:819
#6  0x403d0e50 in php_request_shutdown (dummy=0x0) at
/usr/local/src/php-5.0.0/main/main.c:1212
#7  0x4043b1da in php_apache_request_dtor (r=0x81ed8b0) at
/usr/local/src/php-5.0.0/sapi/apache2handler/sapi_apache2.c:435
#8  0x4043b5fd in php_handler (r=0x81ed8b0) at
/usr/local/src/php-5.0.0/sapi/apache2handler/sapi_apache2.c:551
#9  0x0807d83b in ap_run_handler (r=0x81ed8b0) at config.c:152
#10 0x0807ddbe in ap_invoke_handler (r=0x81ed8b0) at config.c:358
#11 0x0806c98b in ap_process_request (r=0x81ed8b0) at http_request.c:246
#12 0x080686ac in ap_process_http_connection (c=0x81e90c0) at
http_core.c:250
#13 0x080874db in ap_run_process_connection (c=0x81e90c0) at
connection.c:42
#14 0x0807c31d in child_main (child_num_arg=1076259452) at prefork.c:609
#15 0x0807c42d in make_child (s=0x80dbf18, slot=0) at prefork.c:649
#16 0x0807c4f4 in startup_children (number_to_start=5) at prefork.c:721
#17 0x0807cb5d in ap_mpm_run (_pconf=0x80d97e8, plog=0x81118c8, s=0x0) at
prefork.c:940
#18 0x08081f7a in main (argc=2, argv=0xbffff594) at main.c:617

-- 
Edit bug report at http://bugs.php.net/?id=29437&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=29437&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=29437&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=29437&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=29437&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=29437&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=29437&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=29437&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=29437&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=29437&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=29437&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=29437&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=29437&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=29437&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=29437&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=29437&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=29437&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=29437&r=float

Reply via email to