diff options
author | Felipe Pena <felipe@php.net> | 2008-10-30 14:34:25 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2008-10-30 14:34:25 +0000 |
commit | 1eb552a7128a85cbed43f72b61ea74d021fece68 (patch) | |
tree | 03211706c76f95d6aa07c40f4dcb87fd3bcef898 | |
parent | b51214fce724ee62436311e4343e04ed4f3202b6 (diff) | |
download | php-git-1eb552a7128a85cbed43f72b61ea74d021fece68.tar.gz |
- Fix the fix
- Improved test
-rw-r--r-- | ext/standard/streamsfuncs.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/streams/bug46426.phpt | 18 |
2 files changed, 16 insertions, 4 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 505469c7dd..92e4f2d40c 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -411,7 +411,7 @@ PHP_FUNCTION(stream_get_contents) php_stream_from_zval(stream, &zsrc); - if (pos >= 0 && php_stream_seek(stream, pos, SEEK_SET) < 0) { + if ((pos > 0 || (pos == 0 && ZEND_NUM_ARGS() > 2)) && php_stream_seek(stream, pos, SEEK_SET) < 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to seek to position %ld in the stream", pos); RETURN_FALSE; } diff --git a/ext/standard/tests/streams/bug46426.phpt b/ext/standard/tests/streams/bug46426.phpt index 05bc9c1e3c..8c95ea456e 100644 --- a/ext/standard/tests/streams/bug46426.phpt +++ b/ext/standard/tests/streams/bug46426.phpt @@ -7,16 +7,28 @@ $tmp = tmpfile(); fwrite($tmp, "12345"); -echo stream_get_contents($tmp, -1, 0); +echo stream_get_contents($tmp, 2, 1); +echo "\n"; +echo stream_get_contents($tmp, -1); echo "\n"; -echo stream_get_contents($tmp, -1, 1); +echo stream_get_contents($tmp, -1, 0); echo "\n"; echo stream_get_contents($tmp, -1, 2); +echo "\n"; +echo stream_get_contents($tmp, 0, 0); +echo "\n"; +echo stream_get_contents($tmp, 1, 0); +echo "\n"; +echo stream_get_contents($tmp, -1); @unlink($tmp); ?> --EXPECT-- +23 +45 12345 -2345 345 + +1 +2345 |