Hello,

due to a (recent) change in the Zend Engine I get the following segfault
during make install:

make[1]: *** [install-pear-packages] Segmentation fault
make: *** [install-pear] Error 2

With valgrind:

[PEAR] DB             - already installed: 1.5.0RC2
[PEAR] HTTP           - already installed: 1.2.1
[PEAR] Mail           - already installed: 1.1.1
[PEAR] Net_SMTP       - already installed: 1.2.3
[PEAR] Net_Socket     - already installed: 1.0.1
[PEAR] XML_Parser     - already installed: 1.0.1
[PEAR] XML_RPC        - already installed: 1.0.4
==3665== Use of uninitialised value of size 4
==3665==    at 0x4002419F: strcmp (mac_replace_strmem.c:223)
==3665==    by 0x8261C13: zend_is_callable (zend_API.c:1625)
==3665==    by 0x8196A29: zif_call_user_func_array (basic_functions.c:2004)
==3665==    by 0x8282D73: zend_do_fcall_common_helper (zend_execute.c:2541)
==3665==
==3665== Invalid read of size 1
==3665==    at 0x4002419F: strcmp (mac_replace_strmem.c:223)
==3665==    by 0x8261C13: zend_is_callable (zend_API.c:1625)
==3665==    by 0x8196A29: zif_call_user_func_array (basic_functions.c:2004)
==3665==    by 0x8282D73: zend_do_fcall_common_helper (zend_execute.c:2541)
==3665==    Address 0x0 is not stack'd, malloc'd or free'd
Segmentation fault


GDB backtrace:

0x4052d700 in strcmp () from /lib/libc.so.6
(gdb) bt
#0  0x4052d700 in strcmp () from /lib/libc.so.6
#1  0x08261c14 in zend_is_callable (callable=0x408f9b80, syntax_only=0 '\0',
    callable_name=0xbfffe53c) at /dat/dev/php/php-5.0dev/Zend/zend_API.c:1625
#2  0x08196a2a in zif_call_user_func_array (ht=2, return_value=0x4091294c,
    this_ptr=0x0, return_value_used=0)
    at /dat/dev/php/php-5.0dev/ext/standard/basic_functions.c:2004
#3  0x08282d74 in zend_do_fcall_common_helper (execute_data=0xbfffee50,
    op_array=0x84e8458) at /dat/dev/php/php-5.0dev/Zend/zend_execute.c:2541
#4  0x082834bd in zend_do_fcall_handler (execute_data=0xbfffee50,
    op_array=0x84e8458) at /dat/dev/php/php-5.0dev/Zend/zend_execute.c:2687
#5  0x0827f4d7 in execute (op_array=0x84e8458)
    at /dat/dev/php/php-5.0dev/Zend/zend_execute.c:1269
#6  0x08252cd3 in zend_call_function (fci=0xbfffef90, fci_cache=0x0)
    at /dat/dev/php/php-5.0dev/Zend/zend_execute_API.c:737
#7  0x082520d2 in call_user_function_ex (function_table=0x8474740,
    object_pp=0x0, function_name=0x4063e188, retval_ptr_ptr=0xbfffeff8,
    param_count=0, params=0x4092a3d0, no_separation=1, symbol_table=0x0)
    at /dat/dev/php/php-5.0dev/Zend/zend_execute_API.c:513
#8  0x08251f9c in call_user_function (function_table=0x8474740, object_pp=0x0,
    function_name=0x4063e188, retval_ptr=0xbffff030, param_count=0,
    params=0x4063e150) at /dat/dev/php/php-5.0dev/Zend/zend_execute_API.c:488
#9  0x081976b7 in user_shutdown_function_call (
    shutdown_function_entry=0x4063dd34)
---Type <return> to continue, or q <return> to quit---
    at /dat/dev/php/php-5.0dev/ext/standard/basic_functions.c:2142
#10 0x08265013 in zend_hash_apply (ht=0x4063e5f0,
    apply_func=0x8197673 <user_shutdown_function_call>)
    at /dat/dev/php/php-5.0dev/Zend/zend_hash.c:658
#11 0x081979b3 in php_call_shutdown_functions ()
    at /dat/dev/php/php-5.0dev/ext/standard/basic_functions.c:2223
#12 0x0821afca in php_request_shutdown (dummy=0x0)
    at /dat/dev/php/php-5.0dev/main/main.c:1215
#13 0x0828c371 in main (argc=16, argv=0xbffff8d4)
    at /dat/dev/php/php-5.0dev/sapi/cli/php_cli.c:1013

(gdb) frame 2
#2  0x08196a2a in zif_call_user_func_array (ht=2, return_value=0x4091294c,
    this_ptr=0x0, return_value_used=0)
    at /dat/dev/php/php-5.0dev/ext/standard/basic_functions.c:2004
2004            if (!zend_is_callable(*func, 0, &name)) {
(gdb) print name
$1 = 0x405fb85c "System::_removeTmpFiles"
(gdb) print *func
$2 = (zval *) 0x408f9b80
(gdb) print **func
$3 = {value = {lval = 1083282756, dval = 46.000343390546305, str = {
      val = 0x40919544 "\b", len = 1078394891}, ht = 0x40919544, obj = {
      handle = 1083282756, handlers = 0x4047000b}}, refcount = 2,
  type = 4 '\004', is_ref = 0 '\0'}
(gdb) frame 1
#1  0x08261c14 in zend_is_callable (callable=0x408f9b80, syntax_only=0 '\0',
    callable_name=0xbfffe53c) at
/dat/dev/php/php-5.0dev/Zend/zend_API.c:1625
1625   if (EG(active_op_array) && strcmp(lcname, "self") == 0) {
(gdb) print lcname
$4 = 0x0


regards,
Derick

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to