Skip to content

Commit

Permalink
Promote warnings to exceptions in ext/hash
Browse files Browse the repository at this point in the history
  • Loading branch information
kocsismate committed Mar 24, 2020
1 parent a42e8e8 commit d5871e2
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 16 deletions.
12 changes: 6 additions & 6 deletions ext/hash/hash.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,13 @@ static void php_hash_do_hash(INTERNAL_FUNCTION_PARAMETERS, int isfilename, zend_

ops = php_hash_fetch_ops(algo);
if (!ops) {
php_error_docref(NULL, E_WARNING, "Unknown hashing algorithm: %s", ZSTR_VAL(algo));
RETURN_FALSE;
zend_argument_value_error(1, "must be a valid hashing algorithm");
RETURN_THROWS();
}
if (isfilename) {
if (CHECK_NULL_PATH(data, data_len)) {
php_error_docref(NULL, E_WARNING, "Invalid path");
RETURN_FALSE;
zend_argument_value_error(1, "must be a valid path");
RETURN_THROWS();
}
stream = php_stream_open_wrapper_ex(data, "rb", REPORT_ERRORS, NULL, FG(default_context));
if (!stream) {
Expand Down Expand Up @@ -1065,8 +1065,8 @@ PHP_FUNCTION(mhash_keygen_s2k)

bytes = (int)l_bytes;
if (bytes <= 0){
php_error_docref(NULL, E_WARNING, "The byte parameter must be greater than 0");
RETURN_FALSE;
zend_argument_value_error(4, "must be a greater than 0");
RETURN_THROWS();
}

salt_len = MIN(salt_len, SALT_SIZE);
Expand Down
12 changes: 7 additions & 5 deletions ext/hash/tests/hash_error.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@ Hash: hash() function : error conditions
echo "*** Testing hash() : error conditions ***\n";

echo "\n-- Testing hash() function with invalid hash algorithm --\n";
var_dump(hash('foo', ''));
try {
hash('foo', '');
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}

?>
--EXPECTF--
--EXPECT--
*** Testing hash() : error conditions ***

-- Testing hash() function with invalid hash algorithm --

Warning: hash(): Unknown hashing algorithm: foo in %s on line %d
bool(false)
hash(): Argument #1 ($algo) must be a valid hashing algorithm
12 changes: 7 additions & 5 deletions ext/hash/tests/hash_file_error.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@ file_put_contents( $filename, 'The quick brown fox jumped over the lazy dog.' );

// hash_file() error tests
echo "\n-- Testing hash_file() function with an unknown algorithm --\n";
var_dump( hash_file( 'foobar', $filename ) );
try {
hash_file('foobar', $filename);
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}

echo "\n-- Testing hash_file() function with a non-existent file --\n";
var_dump( hash_file( 'md5', 'nonexistent.txt' ) );
var_dump(hash_file('md5', 'nonexistent.txt'));

?>
--CLEAN--
Expand All @@ -36,9 +40,7 @@ unlink( $filename );
*** Testing hash_file() : error conditions ***

-- Testing hash_file() function with an unknown algorithm --

Warning: hash_file(): Unknown hashing algorithm: %s in %s on line %d
bool(false)
hash_file(): Argument #1 ($algo) must be a valid hashing algorithm

-- Testing hash_file() function with a non-existent file --

Expand Down

0 comments on commit d5871e2

Please sign in to comment.