diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/standard/image.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/image/bug71848.jpg | bin | 0 -> 699 bytes | |||
-rw-r--r-- | ext/standard/tests/image/bug71848.phpt | 32 |
4 files changed, 34 insertions, 1 deletions
@@ -43,6 +43,7 @@ PHP NEWS - Standard: . Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys). (Laruence) + . Fixed bug #71848 (getimagesize with $imageinfo returns false). (cmb) - Tokenizer: . Fixed bug #76538 (token_get_all with TOKEN_PARSE flag fails to recognise diff --git a/ext/standard/image.c b/ext/standard/image.c index e34f5c79e8..81676b7a0c 100644 --- a/ext/standard/image.c +++ b/ext/standard/image.c @@ -453,7 +453,7 @@ static int php_read_APP(php_stream * stream, unsigned int marker, zval *info) buffer = emalloc(length); - if (php_stream_read(stream, buffer, (zend_long) length) <= 0) { + if (php_stream_read(stream, buffer, (zend_long) length) != length) { efree(buffer); return 0; } diff --git a/ext/standard/tests/image/bug71848.jpg b/ext/standard/tests/image/bug71848.jpg Binary files differnew file mode 100644 index 0000000000..9588dbe00b --- /dev/null +++ b/ext/standard/tests/image/bug71848.jpg diff --git a/ext/standard/tests/image/bug71848.phpt b/ext/standard/tests/image/bug71848.phpt new file mode 100644 index 0000000000..d96ac1c537 --- /dev/null +++ b/ext/standard/tests/image/bug71848.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #71848 (getimagesize with $imageinfo returns false) +--FILE-- +<?php +var_dump(getimagesize(__DIR__ . '/bug71848.jpg', $info)); +var_dump(array_keys($info)); +?> +===DONE=== +--EXPECT-- +array(7) { + [0]=> + int(8) + [1]=> + int(8) + [2]=> + int(2) + [3]=> + string(20) "width="8" height="8"" + ["bits"]=> + int(8) + ["channels"]=> + int(3) + ["mime"]=> + string(10) "image/jpeg" +} +array(2) { + [0]=> + string(4) "APP0" + [1]=> + string(4) "APP5" +} +===DONE=== |