From: George Peter Banyard Date: Fri, 31 Jul 2020 13:01:05 +0000 (+0100) Subject: Promote empty filename to ValueError in BZ2 extension X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4095c0a28d01780512ffd1b62fb8a2ad031e84ea;p=php Promote empty filename to ValueError in BZ2 extension --- diff --git a/ext/bz2/bz2.c b/ext/bz2/bz2.c index a57d1f6e90..7925ace049 100644 --- a/ext/bz2/bz2.c +++ b/ext/bz2/bz2.c @@ -350,7 +350,7 @@ PHP_FUNCTION(bzopen) /* If it's not a resource its a string containing the filename to open */ if (Z_TYPE_P(file) == IS_STRING) { if (Z_STRLEN_P(file) == 0) { - php_error_docref(NULL, E_WARNING, "Filename cannot be empty"); + zend_argument_value_error(1, "cannot be empty"); RETURN_FALSE; } diff --git a/ext/bz2/tests/001.phpt b/ext/bz2/tests/001.phpt index 3e7af7450a..9561d5ac0f 100644 --- a/ext/bz2/tests/001.phpt +++ b/ext/bz2/tests/001.phpt @@ -6,44 +6,45 @@ bzopen() and invalid parameters getMessage() . \PHP_EOL; } - var_dump(bzopen("", "r")); -var_dump(bzopen("", "w")); +try { + var_dump(bzopen("", "w")); +} catch (\ValueError $e) { + echo $e->getMessage() . \PHP_EOL; +} try { - var_dump(bzopen("", "x")); + var_dump(bzopen("no_such_file", "")); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } try { - var_dump(bzopen("", "rw")); + var_dump(bzopen("no_such_file", "x")); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } try { - var_dump(bzopen("no_such_file", "r")); + var_dump(bzopen("no_such_file", "rw")); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } +var_dump(bzopen("no_such_file", "r")); + $fp = fopen(__FILE__,"r"); var_dump(bzopen($fp, "r")); ?> --EXPECTF-- +bzopen(): Argument #1 ($file) cannot be empty +bzopen(): Argument #1 ($file) cannot be empty bzopen(): Argument #2 ($mode) must be either "r" or "w" - -Warning: bzopen(): Filename cannot be empty in %s on line %d -bool(false) - -Warning: bzopen(): Filename cannot be empty in %s on line %d -bool(false) bzopen(): Argument #2 ($mode) must be either "r" or "w" bzopen(): Argument #2 ($mode) must be either "r" or "w"