Browse Source

Merge branch 'PHP-7.0' into PHP-7.1

* PHP-7.0:
  Fix #73968: Premature failing of XBM reading
pull/2357/head
Christoph M. Becker 10 years ago
parent
commit
7a2497b2c5
  1. 3
      NEWS
  2. 2
      ext/gd/libgd/xbm.c
  3. 15
      ext/gd/tests/bug73968.phpt
  4. 5
      ext/gd/tests/bug73968.xbm
  5. 3
      ext/gd/tests/libgd00094-mb.phpt
  6. 3
      ext/gd/tests/libgd00094.phpt

3
NEWS

@ -16,6 +16,9 @@ PHP NEWS
. Fixed bug #73904 (php-cgi fails to load -c specified php.ini file). (Anatol)
. Fixed bug #72898 (PHP_FCGI_CHILDREN is not included in phpinfo()). (Anatol)
- GD:
. Fixed bug #73968 (Premature failing of XBM reading). (cmb)
- GMP:
. Fixed bug #69993 (test for gmp.h needs to test machine includes).
(Jordan Gigov)

2
ext/gd/libgd/xbm.c

@ -77,7 +77,7 @@ gdImagePtr gdImageCreateFromXbm(FILE * fd)
max_bit = 32768;
}
if (max_bit) {
bytes = (width * height / 8) + 1;
bytes = (width + 7) / 8 * height;
if (!bytes) {
return 0;
}

15
ext/gd/tests/bug73968.phpt

@ -0,0 +1,15 @@
--TEST--
Bug #73968 (Premature failing of XBM reading)
--SKIPIF--
<?php
if (!extension_loaded('gd')) die('skip gd extension not available');
?>
--FILE--
<?php
$im = imagecreatefromxbm(__DIR__ . DIRECTORY_SEPARATOR . 'bug73968.xbm');
var_dump($im);
?>
===DONE===
--EXPECTF--
resource(%d) of type (gd)
===DONE===

5
ext/gd/tests/bug73968.xbm

@ -0,0 +1,5 @@
#define test_width 10
#define test_height 10
static unsigned char test_bits[] = {
0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00,
0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00};

3
ext/gd/tests/libgd00094-mb.phpt

@ -11,9 +11,6 @@ $im = imagecreatefromxbm(dirname(__FILE__) . '/libgd00094私はガラスを食
var_dump($im);
?>
--EXPECTF--
Warning: imagecreatefromxbm(): gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully
in %slibgd00094-mb.php on line %d
Warning: imagecreatefromxbm(): '%slibgd00094私はガラスを食べられます.xbm' is not a valid XBM file in %slibgd00094-mb.php on line %d
bool(false)

3
ext/gd/tests/libgd00094.phpt

@ -11,9 +11,6 @@ $im = imagecreatefromxbm(dirname(__FILE__) . '/libgd00094.xbm');
var_dump($im);
?>
--EXPECTF--
Warning: imagecreatefromxbm(): gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully
in %slibgd00094.php on line %d
Warning: imagecreatefromxbm(): '%slibgd00094.xbm' is not a valid XBM file in %slibgd00094.php on line %d
bool(false)
Loading…
Cancel
Save