Skip to content

Commit

Permalink
Support BITMAPV5HEADER in getimagesize(): https://en.wikipedia.org/wi…
Browse files Browse the repository at this point in the history
  • Loading branch information
lstrojny committed Jan 14, 2013
1 parent 1e9a3ed commit bf9ad4e
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 8 deletions.
5 changes: 3 additions & 2 deletions NEWS
Expand Up @@ -3,11 +3,12 @@ PHP NEWS
?? ??? 2012, PHP 5.4.12

- Core:
. Fixed bug #63982 (isset() inconsistently produces a fatal error on
. Fixed bug #63982 (isset() inconsistently produces a fatal error on
protected property). (Stas)
. Fixed bug #63943 (Bad warning text from strpos() on empty needle).
(Laruence)
. Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
. Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)

- Litespeed:
. Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
Expand All @@ -26,7 +27,7 @@ PHP NEWS
. Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
. Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
(Johannes)
. Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
. Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
(Todd Ruth, Stas).

- Filter:
Expand Down
2 changes: 1 addition & 1 deletion ext/standard/image.c
Expand Up @@ -159,7 +159,7 @@ static struct gfxinfo *php_handle_bmp (php_stream * stream TSRMLS_DC)
result->width = (((unsigned int)dim[ 5]) << 8) + ((unsigned int) dim[ 4]);
result->height = (((unsigned int)dim[ 7]) << 8) + ((unsigned int) dim[ 6]);
result->bits = ((unsigned int)dim[11]);
} else if (size > 12 && (size <= 64 || size == 108)) {
} else if (size > 12 && (size <= 64 || size == 108 || size == 124)) {
result = (struct gfxinfo *) ecalloc (1, sizeof(struct gfxinfo));
result->width = (((unsigned int)dim[ 7]) << 24) + (((unsigned int)dim[ 6]) << 16) + (((unsigned int)dim[ 5]) << 8) + ((unsigned int) dim[ 4]);
result->height = (((unsigned int)dim[11]) << 24) + (((unsigned int)dim[10]) << 16) + (((unsigned int)dim[ 9]) << 8) + ((unsigned int) dim[ 8]);
Expand Down
17 changes: 16 additions & 1 deletion ext/standard/tests/image/getimagesize.phpt
Expand Up @@ -23,7 +23,22 @@ GetImageSize()
var_dump($result);
?>
--EXPECT--
array(11) {
array(12) {
["test1bpix.bmp"]=>
array(6) {
[0]=>
int(500)
[1]=>
int(345)
[2]=>
int(6)
[3]=>
string(24) "width="500" height="345""
["bits"]=>
int(32)
["mime"]=>
string(14) "image/x-ms-bmp"
}
["test1pix.bmp"]=>
array(6) {
[0]=>
Expand Down
10 changes: 6 additions & 4 deletions ext/standard/tests/image/image_type_to_mime_type.phpt
@@ -1,8 +1,8 @@
--TEST--
image_type_to_mime_type()
--SKIPIF--
<?php
if (!function_exists('image_type_to_mime_type')) die('skip image_type_to_mime_type() not available');
<?php
if (!function_exists('image_type_to_mime_type')) die('skip image_type_to_mime_type() not available');
require_once('skipif_imagetype.inc');
?>
--FILE--
Expand All @@ -25,7 +25,9 @@ image_type_to_mime_type()
var_dump($result);
?>
--EXPECT--
array(11) {
array(12) {
["test1bpix.bmp"]=>
string(14) "image/x-ms-bmp"
["test1pix.bmp"]=>
string(14) "image/x-ms-bmp"
["test1pix.jp2"]=>
Expand All @@ -48,4 +50,4 @@ array(11) {
string(29) "application/x-shockwave-flash"
["test4pix.tif"]=>
string(10) "image/tiff"
}
}
Binary file added ext/standard/tests/image/test1bpix.bmp
Binary file not shown.

0 comments on commit bf9ad4e

Please sign in to comment.