}
if (!Z_STRLEN_P(stream)) {
- exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_WARNING, "Filename cannot be empty");
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
+ }
- RETURN_FALSE;
+ if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
+ zend_argument_type_error(1, "cannot contain any null-bytes");
+ RETURN_THROWS();
}
ret = exif_read_from_file(&ImageInfo, Z_STRVAL_P(stream), read_thumbnail, read_all);
}
if (!Z_STRLEN_P(stream)) {
- exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_WARNING, "Filename cannot be empty");
+ zend_argument_value_error(1, "cannot be empty");
+ RETURN_THROWS();
+ }
- RETURN_FALSE;
+ if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
+ zend_argument_type_error(1, "cannot contain any null-bytes");
+ RETURN_THROWS();
}
ret = exif_read_from_file(&ImageInfo, Z_STRVAL_P(stream), 1, 0);
--- /dev/null
+--TEST--
+Passing empty filename to exif_read_data() and exif_thumnail()
+--FILE--
+<?php
+
+try {
+ exif_read_data("");
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+
+try {
+ exif_thumbnail("");
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+
+try {
+ exif_read_data("foo\0bar");
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
+
+try {
+ exif_thumbnail("foo\0bar");
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+exif_read_data(): Argument #1 ($filename) cannot be empty
+exif_thumbnail(): Argument #1 ($filename) cannot be empty
+exif_read_data(): Argument #1 ($filename) cannot contain any null-bytes
+exif_thumbnail(): Argument #1 ($filename) cannot contain any null-bytes