php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #36934 OCILob->read() doesn't move internal pointer when reading 0's
Submitted: 2006-03-31 16:51 UTC Modified: 2006-04-05 14:09 UTC
From: sswpwp at poczta dot onet dot pl Assigned: tony2001 (profile)
Status: Closed Package: OCI8 related
PHP Version: 5CVS-2006-03-31 (snap) OS: Windows 2000
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sswpwp at poczta dot onet dot pl
New email:
PHP Version: OS:

 

 [2006-03-31 16:51 UTC] sswpwp at poczta dot onet dot pl
Description:
------------
When using OCILob->read(length) function with BLOBs containing 0's it reads specified amount of bytes but doesn't move internal pointer properly. The pointer is moved to the next '0' byte and no further. 
I think the possible cause of this bug is line 223 in oci8_lob.c file:
data_len_chars = OCIMultiByteStrnDisplayLength(connection->env, *data, bytes_total); 

Propably the function quits after reaching '\0' character instead of checking bytes_total bytes and as such should be used only with CLOBs.

Reproduce code:
---------------
First 128 bytes in the BLOB I'm reading are 0's, then there are 5 non-zero bytes followed by some more 0's.

$stmt = oci_parse($auth->conn, "SELECT ZDJT_IMAGE FROM IMAGES WHERE IMAGE_ID = 1");
oci_execute($stmt);
$row = oci_fetch_assoc($stmt);

$row['ZDJT_IMAGE']->read(128);
echo $row['ZDJT_IMAGE']->tell();
$row['ZDJT_IMAGE']->read(128);
echo $row['ZDJT_IMAGE']->tell();

$row['ZDJT_IMAGE']->seek(128);
echo $row['ZDJT_IMAGE']->tell();
$row['ZDJT_IMAGE']->read(128);
echo $row['ZDJT_IMAGE']->tell();


Expected result:
----------------
The expected result would be:
128
256

128
256

Actual result:
--------------
0
0

128
133

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-03-31 17:02 UTC] sswpwp at poczta dot onet dot pl
I'm using Apache 2.0.55 and Oracle Instant Client 10.2.0
 [2006-04-05 14:09 UTC] tony2001@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 [2014-06-01 13:11 UTC] salathe@php.net
Automatic comment from SVN on behalf of salathe
Revision: http://svn.php.net/viewvc/?view=revision&revision=333667
Log: Comment improvements

Patch by anonymous #36934
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 11:01:29 2024 UTC