From 3e9923dd8d08f88740f58e54386c0f7c569a5aa6 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Sun, 6 May 2012 18:27:26 +0800 Subject: [PATCH 1/2] Fixed Bug #61961 (file_get_content leaks when access empty file with max length) --- ext/standard/tests/file/bug61961.phpt | 14 ++++++++++++++ main/streams/streams.c | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/file/bug61961.phpt diff --git a/ext/standard/tests/file/bug61961.phpt b/ext/standard/tests/file/bug61961.phpt new file mode 100644 index 00000000000..ff0279a367e --- /dev/null +++ b/ext/standard/tests/file/bug61961.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #61961 (file_get_content leaks when access empty file with max length) +--FILE-- + +==DONE== +--EXPECT-- +string(0) "" +==DONE== \ No newline at end of file diff --git a/main/streams/streams.c b/main/streams/streams.c index 116c0aa045e..fe7800b9feb 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -1366,7 +1366,12 @@ PHPAPI size_t _php_stream_copy_to_mem(php_stream *src, char **buf, size_t maxlen len += ret; ptr += ret; } - *ptr = '\0'; + if (len) { + *ptr = '\0'; + } else { + pefree(*buf, persistent); + *buf = NULL; + } return len; } From 304ac568c56799e60d90fadad3a936b61cab281b Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sun, 6 May 2012 13:19:17 +0200 Subject: [PATCH 2/2] Add NEWS entry for bug #61961 --- NEWS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NEWS b/NEWS index 5dee737fe49..0d42b0fcc30 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,10 @@ PHP NEWS library. See https://bugs.gentoo.org/show_bug.cgi?id=364139 for detail. (Moriyoshi) +- Streams: + . Fixed bug #61961 (file_get_contents leaks when access empty file with + maxlen set). (Reeze) + (merge after 5.3.11 release) - Core: