php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #41419 PDO script crashes on all my builds of php on 4 machines
Submitted: 2007-05-17 18:04 UTC Modified: 2007-05-17 18:12 UTC
From: dmoree at coker dot edu Assigned:
Status: Not a bug Package: PDO related
PHP Version: 5.2.2 OS: Fedora Core 6
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: dmoree at coker dot edu
New email:
PHP Version: OS:

 

 [2007-05-17 18:04 UTC] dmoree at coker dot edu
Description:
------------
I am using some PDO code obtained from IBM. This PDO driver allows for PHP to connect to IBM UniData and UniVerse databases. This code does work as I've been talking to the developer of it for the past 2 weeks and he as also ran my code which has worked. I have done a call stack on it and will place it below.

#0  0x00c81b8c in memcpy () from /lib/libc.so.6
#1  0x080e7af0 in u2_prepare (S=0xa33393c, 
    sql=0xa333834 "CALL PDOSUB ? ? ? \n?", sql_len=20)
    at /root/php-5.1.6/ext/pdo_u2/u2_driver.c:798
#2  0x080e7c24 in u2_handle_preparer (dbh=0xa33082c, 
    sql=0xa333834 "CALL PDOSUB ? ? ? \n?", sql_len=20, stmt=0xa333404, 
    driver_options=0x0) at /root/php-5.1.6/ext/pdo_u2/u2_driver.c:833
#3  0x080e184c in zif_PDO_prepare (ht=1, return_value=0xa33098c, 
    return_value_ptr=0x0, this_ptr=0xa3218b4, return_value_used=1)
    at /root/php-5.1.6/ext/pdo/pdo_dbh.c:557
#4  0x082199fb in zend_do_fcall_common_helper_SPEC (execute_data=0xbfc2c160)
    at /root/php-5.1.6/Zend/zend_vm_execute.h:200
#5  0x0821aafd in execute (op_array=0xa32b79c)
    at /root/php-5.1.6/Zend/zend_vm_execute.h:92
#6  0x081fead8 in zend_execute_scripts (type=8, retval=<value optimized out>, 
    file_count=3) at /root/php-5.1.6/Zend/zend.c:1109
#7  0x081c37b4 in php_execute_script (primary_file=0xbfc2e590)
    at /root/php-5.1.6/main/main.c:1737
#8  0x08275636 in main (argc=2, argv=0xbfc2e6e4)
    at /root/php-5.1.6/sapi/cli/php_cli.c:1093


Reproduce code:
---------------
<?php
// UniData DSN
$dsn = "u2:dbtype=ud;host=10.40.0.16;acct=Collive";
$user = "dmoree";
$pass = "dewwater";


echo "<h2>UniData HTTP Query</h2>\n";

try{
	$db = new PDO($dsn, $user, $pass);
}catch (PDOException $e){
	if(strpos($e->getMessage(), "80011") > 0){
		echo "Error: Invalid username or password!";
		exit();
	}elseif(strpos($e->getMessage(), "39129") > 0){
		echo "Error: Not a valid account name!";
		exit();
	}
	echo "Error: ".$e->getMessage();
	exit();
}

$statement = $db->prepare("CALL PDOSUB :xcode :xparams :xoutdata :xoutcode");

$db = null;

?>

Expected result:
----------------
Should just prepare the statement for execution.

Actual result:
--------------
Upon PHP reaching the prepare statement line it crashes with a segmentation fault. If I run the statement as a query instead of preparing it, it functions fine. If I prepare the statement without the word CALL it functions fine. I have done lots of test over the past 2 days and have singled it down the the word CALL being in the prepare statement. For some reason, if CALL is put into the prepare statement, it crashes. It is isolated to the word CALL only.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-05-17 18:12 UTC] tony2001@php.net
This PDO driver is not a part of PHP or PECL, please report all related issues to its developers.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 27 19:01:29 2024 UTC