Bug #72862 [Com]: segfault using prepared statements on stored procedures that use a cursor
| From: | richard dot fussenegger at trivago dot com | Date: | Fri, 30 Sep 2016 11:53:02 +0000 |
| Subject: | Bug #72862 [Com]: segfault using prepared statements on stored procedures that use a cursor | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-204372@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=72862&edit=1
ID: 72862
Comment by: richard dot fussenegger at trivago dot com
Reported by: nuke48386 at yahoo dot com
Summary: segfault using prepared statements on stored
procedures that use a cursor
Status: Open
Type: Bug
Package: MySQLi related
Operating System: Debian Wheezy i686
PHP Version: 5.6.24
Block user comment: N
Private report: N
New Comment:
Possible duplicate of https://bugs.php.net/bug.php?id=72413
Previous Comments:
------------------------------------------------------------------------
[2016-08-17 04:19:53] nuke48386 at yahoo dot com
Description:
------------
A prepared statement that calls a stored procedure that uses a cursor causes the PHP process to
segfault.
The issue is in the mysqlnd module.
Test script:
---------------
I have posted an SQL file for creating a test database and stored procedure,
and a PHP script that together can reproduce the bug.
Together they are more than 20 lines, so they can be found in
the issue I opened with the folks at DotDeb:
https://github.com/gplessis/dotdeb-php/issues/145
Actual result:
--------------
backtrace:
Starting program: /usr/bin/php test.php
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
mysqlnd_fetch_stmt_row_cursor (result=0xb7621088, param=0xb7621a64, flags=2,
fetched_anything=0xbfffba3f "\267\364/3\267\210\020b\267")
at /usr/src/builddir/ext/mysqlnd/mysqlnd_ps.c:1022
1022 /usr/src/builddir/ext/mysqlnd/mysqlnd_ps.c: No such file or directory.
#0 mysqlnd_fetch_stmt_row_cursor (result=0xb7621088, param=0xb7621a64, flags=2,
fetched_anything=0xbfffba3f "\267\364/3\267\210\020b\267")
at /usr/src/builddir/ext/mysqlnd/mysqlnd_ps.c:1022
#1 0xb73148d5 in php_mysqlnd_res_fetch_row_pub (result=0xb7621088, param=0xb7621a64, flags=2,
fetched_anything=0xbfffba3f "\267\364/3\267\210\020b\267")
at /usr/src/builddir/ext/mysqlnd/mysqlnd_result.c:1352
#2 0xb73173a6 in php_mysqlnd_res_fetch_into_pub (result=0xb7621088, flags=2,
return_value=0xb7621a64, extension=MYSQLND_MYSQLI)
at /usr/src/builddir/ext/mysqlnd/mysqlnd_result.c:1823
#3 0xb73171c5 in php_mysqlnd_res_fetch_all_pub (result=0xb7621088, flags=2,
return_value=0xb7621a48) at /usr/src/builddir/ext/mysqlnd/mysqlnd_result.c:1893
#4 0xb67c6132 in zif_mysqli_fetch_all (ht=0, return_value=0xb7621a48, return_value_ptr=0xb76041a0,
this_ptr=0xb761edb0, return_value_used=1)
at /usr/src/builddir/ext/mysqli/mysqli_nonapi.c:385
#5 0x0842d376 in execute_internal (execute_data_ptr=execute_data_ptr@entry=0xb76042bc,
fci=fci@entry=0x0, return_value_used=return_value_used@entry=1)
at /usr/src/builddir/Zend/zend_execute.c:1527
#6 0x08371493 in dtrace_execute_internal (execute_data_ptr=0xb76042bc, fci=0x0,
return_value_used=1) at /usr/src/builddir/Zend/zend_dtrace.c:97
#7 0x0842f9e7 in zend_do_fcall_common_helper_SPEC (execute_data=<optimized out>) at
/usr/src/builddir/Zend/zend_vm_execute.h:560
#8 0x083f15e7 in execute_ex (execute_data=execute_data@entry=0xb76042bc) at
/usr/src/builddir/Zend/zend_vm_execute.h:363
#9 0x08371359 in dtrace_execute_ex (execute_data=0xb76042bc) at
/usr/src/builddir/Zend/zend_dtrace.c:73
#10 0x0842f162 in zend_execute (op_array=0xb761e5a4) at /usr/src/builddir/Zend/zend_vm_execute.h:388
#11 zend_execute (op_array=0xb761e5a4) at /usr/src/builddir/Zend/zend_vm_execute.h:383
#12 0x08384906 in zend_execute_scripts (type=type@entry=8, retval=retval@entry=0x0,
file_count=file_count@entry=3) at /usr/src/builddir/Zend/zend.c:1341
#13 0x08319dae in php_execute_script (primary_file=primary_file@entry=0xbfffdf78) at
/usr/src/builddir/main/main.c:2613
#14 0x08433379 in do_cli (argc=-1073750152, argc@entry=2, argv=0x7, argv@entry=0x89a0d88) at
/usr/src/builddir/sapi/cli/php_cli.c:994
#15 0x080a5f43 in main (argc=2, argv=0x89a0d88) at /usr/src/builddir/sapi/cli/php_cli.c:1378
A debugging session is active.
Inferior 1 [process 4588] will be killed.
Quit anyway? (y or n)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72862&edit=1