diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-08 12:12:26 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-08 15:23:23 +0200 |
| commit | 7e339a335e87d9c8d0b6994039220890284df63e (patch) | |
| tree | 4f4445f74094e6c614e1f536024be68f20518d37 /ext/exif | |
| parent | 2386f655d8181456c66241fd8ceb008bd995a31c (diff) | |
| download | php-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.c | 4 | ||||
| -rw-r--r-- | ext/exif/tests/filename_empty.phpt | 8 |
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 |
