summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2011-06-05 21:57:01 +0000
committerIlia Alshanetsky <iliaa@php.net>2011-06-05 21:57:01 +0000
commitd846d0e80aa0822ab3f59eea9e85413c4d357748 (patch)
treee91ac9752f932ae2476cf9889b89f97ec165c03a
parent10da251565e80d9030a6c9609e91fda8c7197ef5 (diff)
downloadphp-git-d846d0e80aa0822ab3f59eea9e85413c4d357748.tar.gz
Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning).
-rw-r--r--NEWS1
-rw-r--r--ext/bz2/tests/bug51997.phpt24
-rwxr-xr-xmain/streams/streams.c2
3 files changed, 26 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index cc522cf53f..f30d8dadea 100644
--- a/NEWS
+++ b/NEWS
@@ -47,6 +47,7 @@ PHP NEWS
. Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size)
(Pierre, os at irj dot ru)
. Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields). (Ilia)
+ . Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). (Ilia)
. Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter).
(slusarz at curecanti dot org)
. Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using
diff --git a/ext/bz2/tests/bug51997.phpt b/ext/bz2/tests/bug51997.phpt
new file mode 100644
index 0000000000..fea5398947
--- /dev/null
+++ b/ext/bz2/tests/bug51997.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #51997 (SEEK_CUR with 0 value, returns a warning)
+--SKIPIF--
+<?php if (!extension_loaded("bz2")) print "skip"; ?>
+--FILE--
+<?php
+
+error_reporting(E_ALL);
+
+$filename = "testfile.bz2";
+$str = "This is a test string.\n";
+$bz = bzopen($filename, "w");
+bzwrite($bz, $str);
+bzclose($bz);
+
+$bz = bzopen($filename, "r");
+fseek($bz, 0, SEEK_CUR);
+print bzread($bz, 10);
+print bzread($bz);
+bzclose($bz);
+unlink($filename);
+
+--EXPECT--
+This is a test string.
diff --git a/main/streams/streams.c b/main/streams/streams.c
index 5029f5cd02..eb2eb07082 100755
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1184,7 +1184,7 @@ PHPAPI int _php_stream_seek(php_stream *stream, off_t offset, int whence TSRMLS_
}
/* emulate forward moving seeks with reads */
- if (whence == SEEK_CUR && offset > 0) {
+ if (whence == SEEK_CUR && offset >= 0) {
char tmp[1024];
size_t didread;
while(offset > 0) {