PHP :: Bug #38161 :: oci_bind_by_name return memory dump
| Bug #38161 | oci_bind_by_name return memory dump | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2006-07-20 14:16 UTC | Modified: | 2006-08-09 12:20 UTC |
|
||||||
| From: | a dot bodemer at brillux dot de | Assigned: | tony2001 (profile) | |||||||
| Status: | Closed | Package: | OCI8 related | |||||||
| PHP Version: | 5.1.4 | OS: | Linux x86 | |||||||
| Private report: | No | CVE-ID: | None | |||||||
[2006-07-20 14:16 UTC] a dot bodemer at brillux dot de
Description:
------------
Hallo,
we use a Linux/Apache/Oracle/PHP on a X86 system.
We tested the Codesample on PHP 5.1.4 with Oracle 8.1/10.1 and Apache 2.0.46/2.0.58. Every times the same result, a memory dump from the current apache.
Reproduce code:
---------------
<?php
$query= "declare
n_status NUMBER(2);
begin
n_status := -1 ;
IF :n_status = 0 THEN
:retValue := :n_status;
END IF;
end;";
$conn = OCILogon("wws", "wws", "zente");
$stmt = OCIParse($conn, $query);
OCIBindByName($stmt, ":retValue", $returnValue,50);
OCIBindByName($stmt, ":n_status", $n_status,50);
$ret=OCIExecute($stmt);
print "\n<pre><br>OCIExecute() ret=$ret";
print "\n<br> Return Value=".$returnValue;
?>
Expected result:
----------------
The return value must be NULL.
Actual result:
--------------
The result is a memory dump from the current apache.
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2006-07-20 15:05 UTC] a dot bodemer at brillux dot de
[2006-07-21 03:36 UTC] cjbj at hotmail dot com
Tony you shouldn't need a stack dump for this. Just try a var_dump($returnValue) at the end of the script. Because no value has been returned in the variable it is being treated as a 64K string and printing garbage. The workaround for users is to make sure that the PL/SQL block always sets variable values in all possible code paths. Something like: $query= "declare n_status NUMBER(2); begin :retValue := 0; -- set default value n_status := 1 ; IF :n_status = 0 THEN :retValue := :n_status; END IF; end;";[2006-07-28 01:00 UTC] php-bugs at lists dot php dot net
[2006-07-28 11:55 UTC] a dot bodemer at brillux dot de
[2006-07-28 12:02 UTC] tony2001@php.net
[2006-08-09 12:20 UTC] tony2001@php.net