rasmus Tue Apr 1 13:47:01 2003 EDT
Modified files: (Branch: PHP_4_3)
/php4 TODO_SEGFAULTS
/php4/ext/exif exif.c
Log:
Fix exif crashes
Index: php4/TODO_SEGFAULTS
diff -u php4/TODO_SEGFAULTS:1.1.2.5 php4/TODO_SEGFAULTS:1.1.2.6
--- php4/TODO_SEGFAULTS:1.1.2.5 Tue Apr 1 13:26:14 2003
+++ php4/TODO_SEGFAULTS Tue Apr 1 13:47:01 2003
@@ -6,7 +6,7 @@
i18n_convert/mb_convert_encoding (Moriyoshi Koizumi)
socket_iovec_alloc (Rasmus)
-
+ exif_imagetype,exif_thumbnail (Rasmus)
Open:
@@ -14,8 +14,6 @@
array_pad
bcsub (1)
dbase_open
- exif_imagetype
- exif_thumbnail
mb_ereg (2)
mb_ereg_match (2)
mb_eregi (2)
Index: php4/ext/exif/exif.c
diff -u php4/ext/exif/exif.c:1.118.2.13 php4/ext/exif/exif.c:1.118.2.14
--- php4/ext/exif/exif.c:1.118.2.13 Tue Dec 31 11:34:27 2002
+++ php4/ext/exif/exif.c Tue Apr 1 13:47:01 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: exif.c,v 1.118.2.13 2002/12/31 16:34:27 sebastian Exp $ */
+/* $Id: exif.c,v 1.118.2.14 2003/04/01 18:47:01 rasmus Exp $ */
/* ToDos
*
@@ -95,7 +95,7 @@
};
/* }}} */
-#define EXIF_VERSION "1.4 $Id: exif.c,v 1.118.2.13 2002/12/31 16:34:27 sebastian Exp
$"
+#define EXIF_VERSION "1.4 $Id: exif.c,v 1.118.2.14 2003/04/01 18:47:01 rasmus Exp $"
/* {{{ PHP_MINFO_FUNCTION
*/
@@ -4012,17 +4012,9 @@
}
convert_to_string_ex(p_name);
- if (arg_c >= 3) {
- zval_dtor(*p_width);
- zval_dtor(*p_height);
- }
- if (arg_c >= 4) {
- zval_dtor(*p_imagetype);
- }
ret = exif_read_file(&ImageInfo, Z_STRVAL_PP(p_name), 1, 0 TSRMLS_CC);
if (ret==FALSE) {
- exif_discard_imageinfo(&ImageInfo);
RETURN_FALSE;
}
@@ -4043,10 +4035,13 @@
if (!ImageInfo.Thumbnail.width || !ImageInfo.Thumbnail.height) {
exif_scan_thumbnail(&ImageInfo TSRMLS_CC);
}
+ zval_dtor(*p_width);
+ zval_dtor(*p_height);
ZVAL_LONG(*p_width, ImageInfo.Thumbnail.width);
ZVAL_LONG(*p_height, ImageInfo.Thumbnail.height);
}
if (arg_c >= 4) {
+ zval_dtor(*p_imagetype);
ZVAL_LONG(*p_imagetype, ImageInfo.Thumbnail.filetype);
}
@@ -4076,6 +4071,7 @@
if (zend_get_parameters_ex(1, &arg1) == FAILURE)
WRONG_PARAM_COUNT;
+ convert_to_string_ex(arg1);
stream = php_stream_open_wrapper(Z_STRVAL_PP(arg1), "rb",
IGNORE_PATH|ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL);
if (stream == NULL) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php