Edit report at https://bugs.php.net/bug.php?id=61895&edit=1
ID: 61895
Updated by: ab@php.net
Reported by: andrey at tranvi dot info
Summary: PHP core crash when call
$pdoStmt->execute($array_params) with PDO_Firebird
-Status: Assigned
+Status: Closed
Type: Bug
Package: PDO Firebird
Operating System: Windows
PHP Version: 5.3.11
Assigned To: mariuz
Block user comment: N
Private report: N
New Comment:
Fixed in 7.0 via bug #73087.
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2012-05-02 06:26:04] andrey at tranvi dot info
If I create new PDOStatement, and free in loop, like this:
foreach ($data as $item)
{
$q=$db->prepare($sql);
$q->execute(array(":NIOKR_TYPE"=>$type,":INV_NO"=>$item[0],":NAME"=>$item[1],
":CREATOR"=>$item[2],":N_DOG"=>$item[3],":AUTHOR"=>$item[4],
":AYEAR"=>$item[5],":CITY"=>$item[6],":ANNOTATION"=>$item[7],
":ACOUNT"=>$item[8],":GRIF"=>$item[9],":ACOMMENT"=>$item[10]));
$q=null;
}
PHP crash in another place.
With this backtrace:
> php5ts_debug.dll!zend_mm_check_ptr(_zend_mm_heap * heap=0x01941c38, void * ptr=0x025e6b68, int
>silent=0, char * __zend_filename=0x10587080, unsigned int __zend_lineno=447, char *
>__zend_orig_filename=0x10592b18, unsigned int __zend_orig_lineno=36) СÑÑока 1357
>+ 0x12 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_mm_check_ptr(_zend_mm_heap * heap=0x01941c38, void * ptr=0x025e6b68, int
silent=1, char * __zend_filename=0x10587080, unsigned int __zend_lineno=447, char *
__zend_orig_filename=0x10592b18, unsigned int __zend_orig_lineno=36) СÑÑока 1352
+ 0x1f Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zend_mm_free_int(_zend_mm_heap * heap=0x01941c38, void * p=0x025e6b68, char *
__zend_filename=0x10587080, unsigned int __zend_lineno=447, char * __zend_orig_filename=0x10592b18,
unsigned int __zend_orig_lineno=36) СÑÑока 1993 + 0x1f Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_efree(void * ptr=0x025e6b68, char * __zend_filename=0x10587080, unsigned int
__zend_lineno=447, char * __zend_orig_filename=0x10592b18, unsigned int __zend_orig_lineno=36)
СÑÑока 2361 + 0x2b Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_dtor_func(_zval_struct * zvalue=0x025e5848, char *
__zend_filename=0x10587080, unsigned int __zend_lineno=447) СÑÑока 36 + 0x29
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_dtor(_zval_struct * zvalue=0x025e5848, char * __zend_filename=0x10587080,
unsigned int __zend_lineno=447) СÑÑока 35 + 0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_ptr_dtor(_zval_struct * * zval_ptr=0x025e53e8, char *
__zend_filename=0x1064d5dc, unsigned int __zend_lineno=293) СÑÑока 447 + 0x17
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!param_dtor(void * data=0x025e53d8) СÑÑока 293 + 0x1a
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_hash_destroy(_hashtable * ht=0x025e58d8) СÑÑока 529 +
0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!free_statement(_pdo_stmt_t * stmt=0x025e2e38, void * * * tsrm_ls=0x02833f98)
СÑÑока 2390 + 0xc Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!php_pdo_stmt_delref(_pdo_stmt_t * stmt=0x025e2e38, void * * * tsrm_ls=0x02833f98)
СÑÑока 2448 + 0xd Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!pdo_dbstmt_free_storage(_pdo_stmt_t * stmt=0x025e2e38, void * * *
tsrm_ls=0x02833f98) СÑÑока 2454 + 0xd Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_objects_store_del_ref_by_handle_ex(unsigned int handle=2, const
_zend_object_handlers * handlers=0x10797860, void * * * tsrm_ls=0x02833f98)
СÑÑока 220 + 0x14 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_objects_store_del_ref(_zval_struct * zobject=0x00c1f49c, void * * *
tsrm_ls=0x02833f98) СÑÑока 172 + 0x14 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_dtor_func(_zval_struct * zvalue=0x00c1f49c, char *
__zend_filename=0x10586530, unsigned int __zend_lineno=703) СÑÑока 52 + 0x15
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_dtor(_zval_struct * zvalue=0x00c1f49c, char * __zend_filename=0x10586530,
unsigned int __zend_lineno=703) СÑÑока 35 + 0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_assign_to_variable(_zval_struct * * variable_ptr_ptr=0x025e4754,
_zval_struct * value=0x02560570, int is_tmp_var=0, void * * * tsrm_ls=0x02833f98)
СÑÑока 703 + 0x17 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!ZEND_ASSIGN_SPEC_CV_CONST_HANDLER(_zend_execute_data * execute_data=0x025806e8,
void * * * tsrm_ls=0x02833f98) СÑÑока 24163 + 0x13 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!execute(_zend_op_array * op_array=0x02e938f0, void * * * tsrm_ls=0x02833f98)
СÑÑока 107 + 0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_execute_scripts(int type=8, void * * * tsrm_ls=0x02833f98, _zval_struct * *
retval=0x00000000, int file_count=3, ...) СÑÑока 1236 + 0x21 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!php_execute_script(_zend_file_handle * primary_file=0x00c1fed8, void * * *
tsrm_ls=0x02833f98) СÑÑока 2308 + 0x1b Ð±Ð°Ð¹Ñ C
php.exe!main(int argc=4, char * * argv=0x02833e30) СÑÑока 1184 + 0x13
Ð±Ð°Ð¹Ñ C
php.exe!__tmainCRTStartup() СÑÑока 586 + 0x19 Ð±Ð°Ð¹Ñ C
php.exe!mainCRTStartup() СÑÑока 403 C
kernel32.dll!763fed6c()
[УказаннÑе ниже ÑÑеймÑ
могÑÑ Ð±ÑÑÑ Ð½ÐµÐ²ÐµÑÐ½Ñ Ð¸ (или)
оÑÑÑÑÑÑвоваÑÑ, ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð´Ð»Ñ
kernel32.dll не загÑÑженÑ]
ntdll.dll!778237f5()
ntdll.dll!778237c8()
------------------------------------------------------------------------
[2012-05-02 06:13:41] andrey at tranvi dot info
Backtrace:
php5ts_debug.dll!zend_error(int type=2, const char * format=0x10592b4c, ...)
СÑÑока 979 C
> php5ts_debug.dll!_zval_dtor_func(_zval_struct * zvalue=0x026e4408, char *
>__zend_filename=0x10587080, unsigned int __zend_lineno=447) СÑÑока 35 + 0x2d
>Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_dtor(_zval_struct * zvalue=0x026e4408, char * __zend_filename=0x10587080,
unsigned int __zend_lineno=447) СÑÑока 35 + 0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!_zval_ptr_dtor(_zval_struct * * zval_ptr=0x026e6660, char *
__zend_filename=0x1064d5dc, unsigned int __zend_lineno=293) СÑÑока 447 + 0x17
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!param_dtor(void * data=0x026e6650) СÑÑока 293 + 0x1a
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_hash_destroy(_hashtable * ht=0x026e4bc8) СÑÑока 529 +
0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zim_PDOStatement_execute(int ht=1, _zval_struct * return_value=0x026e2f60,
_zval_struct * * return_value_ptr=0x00000000, _zval_struct * this_ptr=0x026e2b20, int
return_value_used=0, void * * * tsrm_ls=0x02993f98) СÑÑока 453 + 0xc
Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data * execute_data=0x026806e8,
void * * * tsrm_ls=0x02993f98) СÑÑока 320 + 0x78 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data * execute_data=0x026806e8,
void * * * tsrm_ls=0x02993f98) СÑÑока 426 C
php5ts_debug.dll!execute(_zend_op_array * op_array=0x02e038f0, void * * * tsrm_ls=0x02993f98)
СÑÑока 107 + 0x11 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!zend_execute_scripts(int type=8, void * * * tsrm_ls=0x02993f98, _zval_struct * *
retval=0x00000000, int file_count=3, ...) СÑÑока 1236 + 0x21 Ð±Ð°Ð¹Ñ C
php5ts_debug.dll!php_execute_script(_zend_file_handle * primary_file=0x00c1fed8, void * * *
tsrm_ls=0x02993f98) СÑÑока 2308 + 0x1b Ð±Ð°Ð¹Ñ C
php.exe!main(int argc=4, char * * argv=0x02993e30) СÑÑока 1184 + 0x13
Ð±Ð°Ð¹Ñ C
php.exe!__tmainCRTStartup() СÑÑока 586 + 0x19 Ð±Ð°Ð¹Ñ C
php.exe!mainCRTStartup() СÑÑока 403 C
kernel32.dll!763fed6c()
[УказаннÑе ниже ÑÑеймÑ
могÑÑ Ð±ÑÑÑ Ð½ÐµÐ²ÐµÑÐ½Ñ Ð¸ (или)
оÑÑÑÑÑÑвоваÑÑ, ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð´Ð»Ñ
kernel32.dll не загÑÑженÑ]
ntdll.dll!778237f5()
ntdll.dll!778237c8()
------------------------------------------------------------------------
[2012-05-02 05:32:13] andrey at tranvi dot info
Description:
------------
Here: http://pastebin.com/SPgP5xQX php code, minified for
crashing.
Here: http://pastebin.com/MYZj9cPB sql code for creating
database for test.
First, I try create prepared query:
$q=$db->prepare($sql);
when, in loop, I call $q->execute() with some params.
So, when I call execute() without any params - all ok. With 1 or 2 simple parameters - all ok too.
When parameters is array of 11 elements, PHP core crash.
Under debug version, it's write this log:
[Wed May 02 10:11:46 2012] [error] [client 127.0.0.1] PHP Warning: String is not zero-terminated
(String is not zero-terminated
(ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZE\xc2'\x1eZZ)\xf0\x15d\x10\xc4\x01) (source:
c:\\php-sdk\\php53dev\\vc9\\x86\\zend\\zend_execute_api.c:447) in
D:\\test\\yii\\testing\\test_niokr.php on line 107, referer: http://localhost/testing/
I tested it under php5.3.10, php5.3.11 (binary download from official site)
and sself build 5.3.11 with VC9,thread safe, debug version
Release version simple crash. Debug version write many warnings, and crash too.
Test script:
---------------
Here: http://pastebin.com/SPgP5xQX php code, minified for
crashing.
Here: http://pastebin.com/MYZj9cPB sql code
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61895&edit=1