Bug #47415 [Asn->Csd]: PDO_Firebird segfaults when passing lowercased column name to bindColumn()
| From: | mariuz@php.net | Date: | Wed, 28 Dec 2011 10:23:40 +0000 |
| Subject: | Bug #47415 [Asn->Csd]: PDO_Firebird segfaults when passing lowercased column name to bindColumn() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-166114@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=47415&edit=1
ID: 47415
Updated by: mariuz@php.net
Reported by: felipe@php.net
Summary: PDO_Firebird segfaults when passing lowercased
column name to bindColumn()
-Status: Assigned
+Status: Closed
Type: Bug
Package: PDO related
Operating System: *
PHP Version: 5.3CVS-2009-02-16 (CVS)
Assigned To: mariuz
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2011-12-28 10:16:52] mariuz@php.net
Automatic comment from SVN on behalf of mariuz
Revision: http://svn.php.net/viewvc/?view=revision&revision=321467
Log: fix Bug #47415 PDO_Firebird segfaults when passing lowercased column name to bindColumn()
------------------------------------------------------------------------
[2011-12-28 09:52:50] mariuz@php.net
Automatic comment from SVN on behalf of mariuz
Revision: http://svn.php.net/viewvc/?view=revision&revision=321462
Log: added testcase for Bug 47415
------------------------------------------------------------------------
[2009-02-16 22:36:55] felipe@php.net
Description:
------------
The problem just happens when using lowercased column name in boundColumn calls. Using uppercased
occurs memleaks though. (probably related to #47414)
Reproduce code:
---------------
<?php
$db = new PDO('firebird:dbname=...', 'sysdba', 'foo');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
@$db->exec('drop table test');
$db->exec('CREATE TABLE test(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))');
$db->exec('INSERT INTO test VALUES(0, \'String0\')');
$stmt = $db->prepare('SELECT idx, txt FROM test ORDER by idx');
$idx = $txt = 0;
$stmt->bindColumn('idx', $idx);
$stmt->bindColumn('txt', $txt);
$stmt->execute();
$stmt->fetch(PDO::FETCH_BOUND);
Actual result:
--------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb79ee8e0 (LWP 5961)]
0x081d3466 in firebird_stmt_get_col (stmt=0x8c3ac5c, colno=-1, ptr=0xbf7fb76c, len=0xbf7fb768,
caller_frees=0xbf7fb764, tsrm_ls=0x8af8050)
at /home/felipe/dev/php5/ext/pdo_firebird/firebird_statement.c:273
273 if (*var->sqlind == -1) {
(gdb) bt
#0 0x081d3466 in firebird_stmt_get_col (stmt=0x8c3ac5c, colno=-1, ptr=0xbf7fb76c, len=0xbf7fb768,
caller_frees=0xbf7fb764, tsrm_ls=0x8af8050)
at /home/felipe/dev/php5/ext/pdo_firebird/firebird_statement.c:273
#1 0x081d47d9 in firebird_stmt_param_hook (stmt=0x8c3ac5c, param=0x8c3b3d4,
event_type=PDO_PARAM_EVT_FETCH_POST, tsrm_ls=0x8af8050)
at /home/felipe/dev/php5/ext/pdo_firebird/firebird_statement.c:555
#2 0x081c766e in dispatch_param_event (stmt=0x8c3ac5c, event_type=PDO_PARAM_EVT_FETCH_POST,
tsrm_ls=0x8af8050) at /home/felipe/dev/php5/ext/pdo/pdo_stmt.c:184
#3 0x081c88d2 in do_fetch_common (stmt=0x8c3ac5c, ori=PDO_FETCH_ORI_NEXT, offset=0, do_bind=1,
tsrm_ls=0x8af8050) at /home/felipe/dev/php5/ext/pdo/pdo_stmt.c:705
#4 0x081ca077 in do_fetch (stmt=0x8c3ac5c, do_bind=1, return_value=0x8c3b238, how=PDO_FETCH_BOUND,
ori=PDO_FETCH_ORI_NEXT, offset=0, return_all=0x0,
tsrm_ls=0x8af8050) at /home/felipe/dev/php5/ext/pdo/pdo_stmt.c:934
#5 0x081cba40 in zim_PDOStatement_fetch (ht=1, return_value=0x8c3b238, return_value_ptr=0x0,
this_ptr=0x8c38100, return_value_used=0, tsrm_ls=0x8af8050)
at /home/felipe/dev/php5/ext/pdo/pdo_stmt.c:1391
#6 0x084331b8 in zend_do_fcall_common_helper_SPEC (execute_data=0x8c6745c, tsrm_ls=0x8af8050) at
/home/felipe/dev/php5/Zend/zend_vm_execute.h:313
#7 0x08434337 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0x8c6745c, tsrm_ls=0x8af8050) at
/home/felipe/dev/php5/Zend/zend_vm_execute.h:422
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=47415&edit=1