From: [EMAIL PROTECTED]
Operating system: *
PHP version: 5CVS-2005-06-27 (dev)
PHP Bug Type: MySQLi related
Bug description: extended mysqli class crashes when result is not object
Description:
------------
(gdb) run tt.php
Starting program: /www/php/bin/php tt.php
[Thread debugging using libthread_db enabled]
[New Thread -1208100640 (LWP 4755)]
PHP Fatal error: Call to a member function fetch_row() on a non-object in
tt.php on line 8
Fatal error: Call to a member function fetch_row() on a non-object in
tt.php on line 8
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208100640 (LWP 4755)]
0x0818cac4 in instanceof_function_ex (instance_ce=0x8431fac, ce=0x8409f60,
interfaces_only=0 '\0') at /usr/src/php5/Zend/zend_operators.c:1564
1564 if
(instanceof_function(instance_ce->interfaces[i], ce TSRMLS_CC)) {
(gdb) bt
#0 0x0818cac4 in instanceof_function_ex (instance_ce=0x8431fac,
ce=0x8409f60, interfaces_only=0 '\0') at
/usr/src/php5/Zend/zend_operators.c:1564
#1 0x0818cb2d in instanceof_function (instance_ce=0x8431fac,
ce=0x8409f60) at /usr/src/php5/Zend/zend_operators.c:1582
#2 0x08094fc7 in mysqli_objects_free_storage (object=0x8433cfc) at
/usr/src/php5/ext/mysqli/mysqli.c:132
#3 0x081a8547 in zend_objects_store_free_object_storage
(objects=0x839eeec) at /usr/src/php5/Zend/zend_objects_API.c:82
#4 0x08182b87 in shutdown_executor () at
/usr/src/php5/Zend/zend_execute_API.c:272
#5 0x0818f416 in zend_deactivate () at /usr/src/php5/Zend/zend.c:823
#6 0x0814e5fa in php_request_shutdown (dummy=0x0) at
/usr/src/php5/main/main.c:1237
#7 0x081fa4b9 in main (argc=2, argv=0xbffff414) at
/usr/src/php5/sapi/cli/php_cli.c:1142
Reproduce code:
---------------
<?php
class DB extends mysqli
{
public function query_single($query) {
$result = parent::query($query);
$row = $result->fetch_row(); // <- Here be crash
return (isset($row[0]) ? $row[0] : '');
}
}
// Works when using mysqli class directly
/*
$DB = new mysqli('localhost', 'root', '', '');
var_dump($DB->query_single('SELECT DATE()'));
*/
// Segfault when using the DB class which extends mysqli
$DB = new DB('localhost', 'root', '', '');
var_dump($DB->query_single('SELECT DATE()'));
--
Edit bug report at http://bugs.php.net/?id=33491&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=33491&r=trysnapshot4
Try a CVS snapshot (php5.0):
http://bugs.php.net/fix.php?id=33491&r=trysnapshot50
Try a CVS snapshot (php5.1):
http://bugs.php.net/fix.php?id=33491&r=trysnapshot51
Fixed in CVS: http://bugs.php.net/fix.php?id=33491&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=33491&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=33491&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=33491&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=33491&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=33491&r=support
Expected behavior: http://bugs.php.net/fix.php?id=33491&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=33491&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=33491&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=33491&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=33491&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=33491&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=33491&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=33491&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=33491&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=33491&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=33491&r=mysqlcfg