#27469 [NEW]: zend_variables.c problem

From: Date: Tue, 02 Mar 2004 23:00:41 +0000
Subject: #27469 [NEW]: zend_variables.c problem
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-55815@lists.php.net to get a copy of this message
From:             friosa at pnpitalia dot it
Operating system: Linux 2.4.18-4GB
PHP version:      5.0.0b4 (beta4)
PHP Bug Type:     Zend Engine 2 problem
Bug description:  zend_variables.c problem

Description:
------------
I continue to get a core dump using imp with imap from the horde project.
The crash is reproducible but the gdb backtrace has changed after i've
inserted the debug code.

Also I think it's important to mention that if u substitute the
"var_dump()" code below with "print_r()" the crash disappear !!!
so we can switch this three cases:
case "code without debug": crash();
case "code with vardump($mime_part)": crash();
case "code with print_r($mime_part)": --> continue (but I can't still see
the page)

If I can help with something else please contact me, I' will keep a copy
of the code, also I can send U a tar.gz of all this stuff (may be not
usefull with my conf.)

follow:
PHP compiling flags
APACHE
PRINT_R
VARDUMP



*********************************************
* PHP compiling flags
*********************************************

CFLAGS = CPPFLAGS = -march=k6 -O0 -pipe -fomit-frame-pointer -I[...]

./configure \
--prefix=/TEST/php \
--with-apxs2=/TEST/apache/bin/apxs \
--with-config-file-path=/TEST/php/lib/php.ini \
--with-informix=/opt/informix \
--with-mysql=/pnp/mysql \
--with-mysql-sock=/tmp/mysql.sock \
--enable-libgcc \
--with-curl=/pnp \
--disable-ipv6 \
--enable-ftp \
--with-openssl=/pnp \
--with-gd \
--enable-gd-native-ttf \
--with-zlib-dir=/usr \
--with-jpeg-dir=/usr \
--enable-exif \
--with-tiff-lib=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr \
--with-pdflib=/TEST \
--enable-bcmath \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-mime-magic \
--with-qtdom \
--enable-pcntl \
--enable-sockets \
--x-includes=/usr/X11/include/X11 \
--x-libraries=/usr/X11/lib \
--with-readline \
--with-gnu-ld \
--enable-static \
--with-gettext \
--with-libxml-dir=/TEST \
--with-xml=/TEST \
--with-dom=/TEST \
--with-xsl=/TEST \
--with-dom-xslt=/TEST \
--with-dom-exslt=/TEST \
--with-mcrypt=/pnp \
--with-imap \
--enable-debug \
&& make && make install



*********************************************
* APACHE
*********************************************



./httpd -V
Server version: Apache/2.1.0-dev
Server built:   Jan 26 2004 12:02:10
Server's Module Magic Number: 20030821:3
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D HTTPD_ROOT="/TEST/apache"
 -D SUEXEC_BIN="/TEST/apache/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


*********************************************
* PRINT_R
*********************************************

MIME_Message Object
(
    [_build] => 1
    [_defaultServer] => www2.pnp
    [_type] => text
    [_subtype] => Array
        (
            [download] => download_attach
            [view] => view_attach
        )

    [_contents] => 
    [_transferEncoding] => 7bit
    [_encode7bit] => 1
    [_description] => 
    [_disposition] => inline
    [_dispositionParameters] => Array
        (
        )

    [_contentTypeParameters] => 0
    
*********************************************
* VARDUMP
*********************************************

object(MIME_Message)#19 (19) {
  ["_build"]=>
  bool(true)
  ["_defaultServer"]=>
  string(8) "www2.pnp"
  ["_type"]=>
  string(4) "text"
  ["_subtype"]=>
  array(2) {
    ["download"]=>
    string(15) "download_attach"
    ["view"]=>
    string(11) "view_attach"
  }
  ["_contents"]=>
  string(0) ""
  ["_transferEncoding"]=>
  string(4) "7bit"
  ["_encode7bit"]=>
  bool(true)
  ["_description"]=>
  string(0) ""
  ["_disposition"]=>
  string(6) "inline"
  ["_dispositionParameters"]=>
  array(0) {
  }
  ["_contentTypeParameters"]=>
  &UNKNOWN:0
  ["_parts"]=>
  array(0) {
  }
  ["_information"]=>
  UNKNOWN:0
  ["_bytes"]=>
  object(MIME_Message)#19 (19) {
    ["_build"]=>
    bool(true)
    ["_defaultServer"]=>
    string(8) "www2.pnp"
    ["_type"]=>
    string(4) "text"
    ["_subtype"]=>
    array(2) {
      ["download"]=>
      string(15) "download_attach"
      ["view"]=>
      string(11) "view_attach"
    }
    ["_contents"]=>
    string(0) ""
    ["_transferEncoding"]=>
    string(4) "7bit"
    ["_encode7bit"]=>
    bool(true)
    ["_description"]=>
    string(0) ""
    ["_disposition"]=>
    string(6) "inline"
    ["_dispositionParameters"]=>
    array(0) {
    }
    ["_contentTypeParameters"]=>
    &UNKNOWN:0
    ["_parts"]=>
    array(0) {
    }
    ["_information"]=>
    UNKNOWN:0
    ["_bytes"]=>
    *RECURSION*
    ["_cids"]=>
    array(0) {
    }
    ["_mimeid"]=>
    UNKNOWN:0
    ["_eol"]=>
    string(1) "
"
    ["_flags"]=>
    UNKNOWN:0
    ["_idmap"]=>
    array(0) {
    }
  }
  ["_cids"]=>
  array(0) {
  }
  ["_mimeid"]=>
  UNKNOWN:0
  ["_eol"]=>
  string(1) "
"
  ["_flags"]=>
  UNKNOWN:0
  ["_idmap"]=>
  array(0) {
  }
}



Reproduce code:
---------------
class MIME_Contents {
[...]
    function buildMessagePart(&$mime_part)
    {
        $msg = '';
        if (!$this->canDisplayInline($mime_part) &&
            ($mime_part->getMIMEId() != 0)) {
            if (($this->_displayType == 'list') ||
                ($this->_displayType == 'both')) {
                $this->setSummary($mime_part, 'attachment');
            }
            if (($this->_displayType == 'inline') ||
                ($this->_displayType == 'both')) {
                $this->setSummary($mime_part, 'part');
            }
        } else {
// poor man debug code ...
echo "<pre>";
var_dump($mime_part);
echo "pippo".$i++; str_pad(" ", 300); ob_flush();flush();
echo "</pre>";

// ... poor man debug code
/////  CRASH HERE, FIRST LINE OF  "$this->renderMIMEPart($mime_part);" 
WILL NEVER EXECUTED
            $msg = $this->renderMIMEPart($mime_part);
            [...]


Actual result:
--------------
gdb ./httpd
GNU gdb 5.1.1
[...]
(gdb) run -X -f /TEST/apache/conf/httpd.conf
Starting program: /TEST/apache/bin/./httpd -X -f
/TEST/apache/conf/httpd.conf
[New Thread 1024 (LWP 30012)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 30012)]
0x4066c571 in _zval_dtor (zvalue=0x4127d6a0, __zend_filename=0x406ed780
"/TEST/php-5.0.0b4/Zend/zend_execute_API.c", __zend_lineno=359)
    at /TEST/php-5.0.0b4/Zend/zend_variables.c:44
44                              CHECK_ZVAL_STRING_REL(zvalue);
(gdb) bt
#0  0x4066c571 in _zval_dtor (zvalue=0x4127d6a0,
__zend_filename=0x406ed780 "/TEST/php-5.0.0b4/Zend/zend_execute_API.c",
__zend_lineno=359)
    at /TEST/php-5.0.0b4/Zend/zend_variables.c:44
#1  0x412b11cc in ?? ()
#2  0x406972f7 in zend_do_fcall_common_helper (execute_data=0x40cf4b64,
opline=0x406f2a20, op_array=0x74) at
/TEST/php-5.0.0b4/Zend/zend_execute.c:2671
#3  0x406972f7 in zend_do_fcall_common_helper (execute_data=0x40cf4b64,
opline=0x406f2a20, op_array=0x74) at
/TEST/php-5.0.0b4/Zend/zend_execute.c:2671
#4  0x406972f7 in zend_do_fcall_common_helper (execute_data=0x40cf4b64,
opline=0x406f2a20, op_array=0x74) at
/TEST/php-5.0.0b4/Zend/zend_execute.c:2671
#5  0x406972f7 in zend_do_fcall_common_helper (execute_data=0x40cf4b64,
opline=0x406f2a20, op_array=0x74) at
/TEST/php-5.0.0b4/Zend/zend_execute.c:2671
#6  0x4066eaf7 in zend_execute_scripts (type=0, retval=0x0, file_count=4)
at /TEST/php-5.0.0b4/Zend/zend.c:1052
(gdb)


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


Thread (9 messages)

« previous php.bugs (#55815) next »