diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2011-06-05 21:57:01 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2011-06-05 21:57:01 +0000 |
commit | d846d0e80aa0822ab3f59eea9e85413c4d357748 (patch) | |
tree | e91ac9752f932ae2476cf9889b89f97ec165c03a | |
parent | 10da251565e80d9030a6c9609e91fda8c7197ef5 (diff) | |
download | php-git-d846d0e80aa0822ab3f59eea9e85413c4d357748.tar.gz |
Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning).
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/bz2/tests/bug51997.phpt | 24 | ||||
-rwxr-xr-x | main/streams/streams.c | 2 |
3 files changed, 26 insertions, 1 deletions
@@ -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) { |