|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #56756 Apache segmentation fault on stored procedure call
Submitted: 2005-12-29 03:49 UTC Modified: 2007-06-29 11:06 UTC
From: pavel at ctk dot ru Assigned:
Status: Closed Package: PDO_OCI (PECL)
PHP Version: 5.1.1 OS: FreeBSD6-STABLE
Private report: No CVE-ID: None
 [2005-12-29 03:49 UTC] pavel at ctk dot ru
Calling Oracle stored procedure cause the apache http daemon segmentation fault on FreeBSD6-STABLE box.

Used software:

Reproduce code:
    $dbh = new PDO("oci:dbname=dbhost", 'user, 'pass');

    $sql = "CALL sp_test('p1','p2','p3',?,?)";
    $stmt = $dbh->prepare($sql);

    $out_param1 = "a";
    $out_param2 = "a";

    $stmt->bindParam(1,$out_param1,PDO::PARAM_STR, 1024);
    $stmt->bindParam(2,$out_param2,PDO::PARAM_STR, 1024);

    $stmt->execute() // <===== !!! this is line 14
        or die ("<pre>Execution error:\n" . print_r($dbh->errorInfo(), true));

    $dbh = null;

    print $out_param1 . " ". $out_param2;

Expected result:
This code should print in a browser window two strings returned from SP. In my case - "Stored" and "procedure"

Actual result:
I'm failed to produce backtrace because gbd coredumps:
# ulimit -c unlimited
# gdb httpd
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
Starting program: /usr/local/sbin/httpd -DNOHTTPACCEPT -X
warning: Unable to get location for thread creation breakpoint: generic error
[New LWP 100359]
[New Thread 0x80b0000 (LWP 100359)]
gdb in realloc(): error: pointer to wrong page
Abort trap (core dumped)

In apache error log:
[Thu Dec 29 11:32:13 2005] [error] [client x.x.x.x] PHP Warning:  PDOStatement::execute() [<a href='function.execute'>function.execute</a>]: param is NULL in oci_bind_input_cb; this should not happen in /u01/www/ on line 14
[Thu Dec 29 11:32:13 2005] [error] [client x.x.x.x] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 24343 OCIStmtExecute: ORA-24343: user defined callback error\n (/usr/obj/usr/ports/databases/pecl-PDO_OCI/work/PDO_OCI-1.0/oci_statement.c:142)' in /u01/www/\nStack trace:\n#0 /u01/www/ PDOStatement->execute()\n#1 {main}\n  thrown in /u01/www/ on line 14


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2007-06-29 11:06 UTC] christopher dot jones at oracle dot com
Thank you for your bug report. This issue has been fixed
in the latest released version of the package, which you can download at

I can not reproduce this now with PHP 5.2.4-dev.  It may have been fixed a long time ago.

I have merged your testcase to ext/pdo_oci/tests/pecl_bug_6364.phpt
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Feb 24 23:01:27 2024 UTC