Bug #13297: segfault in ociparse()
| From: | graeme at i7 dot com dot au | Date: | Fri, 14 Sep 2001 02:30:53 +0000 |
| Subject: | Bug #13297: segfault in ociparse() | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-65915@lists.php.net to get a copy of this message | ||
From: graeme@i7.com.au
Operating system: Solaris-2.6
PHP version: 4.0.6
PHP Bug Type: Reproducible crash
Bug description: segfault in ociparse()
Using gcc-2.95.3
Configure line:
"./configure" \
"--enable-debug" \
"--enable-libgcc" \
"--with-apxs=/usr/local/apache/bin/apxs" \
"--without-mysql" \
"--enable-magic-quotes" \
"--enable-track-vars" \
"--enable-memory-limit" \
"--with-expat-dir=/usr/local" \
"--with-sablot=shared,/usr/local" \
"--with-oci8=shared,/oracle/product/817" \
"--with-curl=shared" \
"--with-zlib-dir=/local" \
"--with-dom=shared" \
"--enable-shmop"
oci8 and domxml modules currently loaded. Tried altering load order but no
difference.
Test script:
<?php
$db = ocilogon("massive","massive", "PLAT");
var_dump($db);
$sql = "SELECT SYSDATE FROM DUAL";
$stmt = ociparse($db, $sql);
var_dump($stmt);
?>
Ouput:
bash-2.05$ php -qe test.php
resource(3) of type (oci8 connection)
resource(4) of type (oci8 statement)
Segmentation Fault (core dumped)
GDB output when stepping thru:
0x24f64 in _start ()
(gdb)
Program received signal SIGSEGV, Segmentation fault.
Cannot access memory at address 0xef22b2c4.
and a backtrace from a core:
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /usr/lib/libpam.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/local/lib/libexpat.so.0...done.
Reading symbols from /usr/local/lib/libsablot.so.0...done.
Reading symbols from /usr/local/lib/libz.so...done.
Reading symbols from /usr/lib/libresolv.so.2...done.
Reading symbols from /usr/lib/libm.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/platform/sun4u/lib/libc_psr.so.1...done.
Reading symbols from /usr/lib/nss_files.so.1...done.
#0 0xef22b2c4 in ?? ()
(gdb) bt
#0 0xef22b2c4 in ?? ()
#1 0xef4888ac in exit ()
However the script runs as you'll see from the output. the $stmt resource
gets printed. I suspect there's a problem in one of the oracle shutdown
functions but I don't know my way around c/gdb well enough
--
Edit bug report at: http://bugs.php.net/?id=13297&edit=1