From be6338014aec1d63e7bd6cce4bee2462d18fdd34 Mon Sep 17 00:00:00 2001 From: Jani Taskinen Date: Sat, 1 Aug 2009 03:17:31 +0000 Subject: [PATCH] - Fixed bug #43510 (stream_get_meta_data() does not return same mode as used in fopen) --- NEWS | 2 + ext/standard/http_fopen_wrapper.c | 5 ++- ext/standard/tests/http/bug43510.phpt | 56 +++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/http/bug43510.phpt diff --git a/NEWS b/NEWS index 5b5cbcaa01..04aac2ea40 100644 --- a/NEWS +++ b/NEWS @@ -96,6 +96,8 @@ PHP NEWS - Fixed bug #48182 (ssl handshake fails during asynchronous socket connection). (Sriram Natarajan) - Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick) +- Fixed bug #43510 (stream_get_meta_data() does not return same mode as used + in fopen). (Jani) - Fixed bug #42434 (ImageLine w/ antialias = 1px shorter). (wojjie at gmail dot com, Kalle) diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index 447f3b5484..63478e9817 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -326,7 +326,6 @@ php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, char *path, strlcat(scratch, " HTTP/1.0\r\n", scratch_len); } - /* send it */ php_stream_write(stream, scratch, strlen(scratch)); @@ -772,6 +771,7 @@ out: stream->wrapperdata = response_header; } php_stream_notify_progress_init(context, 0, file_size); + /* Restore original chunk size now that we're done with headers */ if (options & STREAM_WILL_CAST) php_stream_set_chunk_size(stream, chunk_size); @@ -783,6 +783,9 @@ out: * the stream */ stream->position = 0; + /* restore mode */ + strlcpy(stream->mode, mode, sizeof(stream->mode)); + if (transfer_encoding) { php_stream_filter_append(&stream->readfilters, transfer_encoding); } diff --git a/ext/standard/tests/http/bug43510.phpt b/ext/standard/tests/http/bug43510.phpt new file mode 100644 index 0000000000..ebd3c1bc62 --- /dev/null +++ b/ext/standard/tests/http/bug43510.phpt @@ -0,0 +1,56 @@ +--TEST-- +Bug #43510: stream_get_meta_data() does not return same mode as used in fopen +--SKIPIF-- + +--FILE-- + +--EXPECT-- +string(1) "r" +string(2) "rb" +--TEST-- +Bug #43510: stream_get_meta_data() does not return same mode as used in fopen +--SKIPIF-- + +--FILE-- + +--EXPECT-- +string(1) "r" +string(2) "rb" -- 2.40.0