summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Le Blanc <lbarnaud@php.net>2008-11-03 16:58:28 +0000
committerArnaud Le Blanc <lbarnaud@php.net>2008-11-03 16:58:28 +0000
commitc4c2308fecd1b99404a71c073288dccb95fff06e (patch)
tree378c8d2ea9c489afb3e51739bf9d70a0c074f37b
parent0bed5602eece3cbe52306c32b3fa7e2d7833e00f (diff)
downloadphp-git-c4c2308fecd1b99404a71c073288dccb95fff06e.tar.gz
Fixed bug #45303 (Opening php:// wrapper in append mode results
in a warning)
-rw-r--r--ext/standard/tests/file/bug45303.phpt13
-rw-r--r--main/streams/plain_wrapper.c1
2 files changed, 14 insertions, 0 deletions
diff --git a/ext/standard/tests/file/bug45303.phpt b/ext/standard/tests/file/bug45303.phpt
new file mode 100644
index 0000000000..0a4b33bcff
--- /dev/null
+++ b/ext/standard/tests/file/bug45303.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #45303 (Opening php:// wrapper in append mode results in a warning)
+--FILE--
+<?php
+$fd = fopen("php://stdout","a");
+var_dump($fd);
+var_dump(fseek($fd, 1024*1024, SEEK_SET));
+?>
+--EXPECTF--
+resource(%d) of type (stream)
+
+Warning: fseek(): stream does not support seeking in %s
+int(-1)
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
index 39ffb86172..e96980b73f 100644
--- a/main/streams/plain_wrapper.c
+++ b/main/streams/plain_wrapper.c
@@ -239,6 +239,7 @@ PHPAPI php_stream *_php_stream_fopen_from_fd(int fd, const char *mode, const cha
#ifdef ESPIPE
if (stream->position == (off_t)-1 && errno == ESPIPE) {
stream->position = 0;
+ stream->flags |= PHP_STREAM_FLAG_NO_SEEK;
self->is_pipe = 1;
}
#endif