diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/exif/exif.c | 2 | ||||
| -rw-r--r-- | ext/exif/tests/bug76164.phpt | 16 | 
2 files changed, 16 insertions, 2 deletions
| diff --git a/ext/exif/exif.c b/ext/exif/exif.c index d9c591496b..43bd7a33c3 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -4457,13 +4457,11 @@ PHP_FUNCTION(exif_read_data)  #ifdef EXIF_DEBUG  		sections_str = exif_get_sectionlist(sections_needed);  		if (!sections_str) { -			zend_string_release(z_sections_needed);  			RETURN_FALSE;  		}  		exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_NOTICE, "Sections needed: %s", sections_str[0] ? sections_str : "None");  		EFREE_IF(sections_str);  #endif -		zend_string_release(z_sections_needed);  	}  	if (Z_TYPE_P(stream) == IS_RESOURCE) { diff --git a/ext/exif/tests/bug76164.phpt b/ext/exif/tests/bug76164.phpt new file mode 100644 index 0000000000..ea77e1d5e9 --- /dev/null +++ b/ext/exif/tests/bug76164.phpt @@ -0,0 +1,16 @@ +--TEST--
 +Bug #76164 (exif_read_data zend_mm_heap corrupted)
 +--SKIPIF--
 +<?php
 +if (!extension_loaded('exif')) die('skip exif extension not available');
 +?>
 +--FILE--
 +<?php
 +$var1 = 'nonexistentfile';
 +$var2 = 2200000000;
 +@exif_read_data($var1, $var2); // we're not interested in the warning, here
 +$var2 = 1;
 +?>
 +===DONE===
 +--EXPECT--
 +===DONE===
 | 
