From:             theta...@php.net
Operating system: Solaris 10 x86
PHP version:      5.3.0
PHP Bug Type:     MySQL related
Bug description:  Segmentation fault in MySQL extension with mysqlnd

Description:
------------
Installed PHP 5.3 today on our Solaris server running with NSAPI as SAPI
module (which is not the problem here). Our test environment with some
applications like MediaWiki and our own PHP scripts worked as exspected.

We are using the new mysqlnd, because under solaris 10 with Blastwave
mysql libs you have problems with compiling (libs are 32/64 bit dual,
mysql_config only return 64 bit params, php should be compiled as 32bit,
see my php_dev mail after RC4). Mysqlnd works super, mediawiki runs much
faster than before.

With one application, which was not tested before, we have a problem. The
content managment system Contenido 4.8.12 (www.condenido.org) works in the
frontend without problem, so the website is running, but the backend
crashes PHP with an SIGSEGV. The stacktrace is attached.

Contenido uses the old mysql extension (which also uses mysqlnd).

Reproduce code:
---------------
I do not exectly know at which portion of contenido's code it crashes. It
seems that Z_STRLEN_P(return_value) = strlen(mysql_field->table) produces a
sigsegv (mysql_field->table == NULL):


Expected result:
----------------
It should not crash the webserver process.

Actual result:
--------------
Program terminated with signal 11, Segmentation fault.
#0  0xfc3925e2 in php_mysql_field_info (ht=0, return_value=0xa5b157c,
return_value_ptr=0x0, this_ptr=0x0, return_value_used=1, 
    tsrm_ls=0xa61f228, entry_type=2) at
/pangaea/install/php-5.3.0/ext/mysql/php_mysql.c:2410
2410                            Z_STRLEN_P(return_value) =
strlen(mysql_field->table);

(gdb) where
#0  0xfc3925e2 in php_mysql_field_info (ht=0, return_value=0xa5b157c,
return_value_ptr=0x0, this_ptr=0x0, return_value_used=1, 
    tsrm_ls=0xa61f228, entry_type=2) at
/pangaea/install/php-5.3.0/ext/mysql/php_mysql.c:2410
#1  0xfc56ce5d in zend_do_fcall_common_helper_SPEC
(execute_data=0xa406f20, tsrm_ls=0xa1315e0)
    at /pangaea/install/php-5.3.0/Zend/zend_vm_execute.h:313
#2  0xfc56bce2 in execute (op_array=0xa511654, tsrm_ls=0xa1315e0) at
/pangaea/install/php-5.3.0/Zend/zend_vm_execute.h:104
#3  0xfc54a103 in zend_execute_scripts (type=8, tsrm_ls=0xa1315e0,
retval=0x0, file_count=3)
    at /pangaea/install/php-5.3.0/Zend/zend.c:1188
#4  0xfc4f5562 in php_execute_script (primary_file=0xebbe7cb8,
tsrm_ls=0xa1315e0) at /pangaea/install/php-5.3.0/main/main.c:2196
#5  0xfc5d5916 in php5_execute (pb=0x82efe08, sn=0x9b9939c, rq=0x9b99414)
at /pangaea/install/php-5.3.0/sapi/nsapi/nsapi.c:1040
#6  0xfecfb147 in func_exec_str () from
/pangaea/webserver70/lib/libns-httpd40.so
#7  0xfecfbd2a in INTfunc_exec_directive () from
/pangaea/webserver70/lib/libns-httpd40.so
#8  0xfed009d6 in INTservact_service () from
/pangaea/webserver70/lib/libns-httpd40.so
#9  0xfed01a39 in INTservact_handle_processed () from
/pangaea/webserver70/lib/libns-httpd40.so
#10 0xfed5e358 in __1cLHttpRequestUUnacceleratedRespond6M_v_ () from
/pangaea/webserver70/lib/libns-httpd40.so
#11 0xfed5d5ba in __1cLHttpRequestNHandleRequest6MpnGnetbuf_I_i_ () from
/pangaea/webserver70/lib/libns-httpd40.so
#12 0xfed5be90 in __1cNDaemonSessionDrun6M_v_ () from
/pangaea/webserver70/lib/libns-httpd40.so
#13 0xfeb861fc in ThreadMain () from
/pangaea/webserver70/lib/libnsprwrap.so
#14 0xfe0bb6c9 in _pt_root () from /pangaea/webserver70/lib/libnspr4.so
#15 0xfd37fd36 in _thr_setup () from /lib/libc.so.1
#16 0xfd380020 in L3_doit () from /lib/libc.so.1
#17 0xfb2d0400 in ?? ()
#18 0x00000000 in ?? ()

(gdb) print *mysql_field
$2 = {name = 0x0, org_name = 0x0, table = 0x0, org_table = 0x0, db = 0x0,
catalog = 0x0, def = 0x0, length = 0, max_length = 0, 
  name_length = 0, org_name_length = 0, table_length = 0, org_table_length
= 0, db_length = 0, catalog_length = 0, def_length = 0, 
  flags = 0, decimals = 0, charsetnr = 0, type = MYSQL_TYPE_DECIMAL, root
= 0x0, root_len = 0}


-- 
Edit bug report at http://bugs.php.net/?id=48745&edit=1
-- 
Try a CVS snapshot (PHP 5.2):        
http://bugs.php.net/fix.php?id=48745&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):        
http://bugs.php.net/fix.php?id=48745&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):        
http://bugs.php.net/fix.php?id=48745&r=trysnapshot60
Fixed in CVS:                        
http://bugs.php.net/fix.php?id=48745&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=48745&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=48745&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=48745&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=48745&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=48745&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=48745&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=48745&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=48745&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=48745&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=48745&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=48745&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=48745&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=48745&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=48745&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=48745&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=48745&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=48745&r=mysqlcfg

Reply via email to