summaryrefslogtreecommitdiff
path: root/ext/exif
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-09-08 12:12:26 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-09-08 15:23:23 +0200
commit7e339a335e87d9c8d0b6994039220890284df63e (patch)
tree4f4445f74094e6c614e1f536024be68f20518d37 /ext/exif
parent2386f655d8181456c66241fd8ceb008bd995a31c (diff)
downloadphp-git-7e339a335e87d9c8d0b6994039220890284df63e.tar.gz
Make null byte error a ValueError
Currently we treat paths with null bytes as a TypeError, which is incorrect, and rather inconsistent, as we treat empty paths as ValueError. We do this because the error is generated by zpp and it's easier to always throw TypeError there. This changes the zpp implementation to throw a TypeError only if the type is actually wrong and throw ValueError for null bytes. The error message is also split accordingly, to be more precise. Closes GH-6094.
Diffstat (limited to 'ext/exif')
-rw-r--r--ext/exif/exif.c4
-rw-r--r--ext/exif/tests/filename_empty.phpt8
2 files changed, 6 insertions, 6 deletions
diff --git a/ext/exif/exif.c b/ext/exif/exif.c
index b47dea6109..59a3ab74d5 100644
--- a/ext/exif/exif.c
+++ b/ext/exif/exif.c
@@ -4541,7 +4541,7 @@ PHP_FUNCTION(exif_read_data)
}
if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
- zend_argument_type_error(1, "cannot contain any null-bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
@@ -4718,7 +4718,7 @@ PHP_FUNCTION(exif_thumbnail)
}
if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
- zend_argument_type_error(1, "cannot contain any null-bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
diff --git a/ext/exif/tests/filename_empty.phpt b/ext/exif/tests/filename_empty.phpt
index 7896c87fbb..b2f58ae3c5 100644
--- a/ext/exif/tests/filename_empty.phpt
+++ b/ext/exif/tests/filename_empty.phpt
@@ -17,13 +17,13 @@ try {
try {
exif_read_data("foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
try {
exif_thumbnail("foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
@@ -31,5 +31,5 @@ try {
--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
+exif_read_data(): Argument #1 ($filename) must not contain any null bytes
+exif_thumbnail(): Argument #1 ($filename) must not contain any null bytes