Warnings become errors hash_hmac hash_hmac_file

This commit is contained in:
Mark 2019-08-26 22:34:50 +01:00 committed by Joe Watkins
parent 62751b0d45
commit 21587854b4
No known key found for this signature in database
GPG Key ID: F9BA0ADA31CBD89E
3 changed files with 43 additions and 25 deletions

View File

@ -252,18 +252,18 @@ static void php_hash_do_hash_hmac(INTERNAL_FUNCTION_PARAMETERS, int isfilename,
ops = php_hash_fetch_ops(algo, algo_len);
if (!ops) {
php_error_docref(NULL, E_WARNING, "Unknown hashing algorithm: %s", algo);
RETURN_FALSE;
zend_throw_error(NULL, "Unknown hashing algorithm: %s", algo);
return;
}
else if (!ops->is_crypto) {
php_error_docref(NULL, E_WARNING, "Non-cryptographic hashing algorithm: %s", algo);
RETURN_FALSE;
zend_throw_error(NULL, "Non-cryptographic hashing algorithm: %s", algo);
return;
}
if (isfilename) {
if (CHECK_NULL_PATH(data, data_len)) {
php_error_docref(NULL, E_WARNING, "Invalid path");
RETURN_FALSE;
zend_throw_error(NULL, "Invalid path");
return;
}
stream = php_stream_open_wrapper_ex(data, "rb", REPORT_ERRORS, NULL, FG(default_context));
if (!stream) {

View File

@ -13,23 +13,29 @@ $data = "This is a sample string used to test the hash_hmac function with variou
$key = 'secret';
echo "\n-- Testing hash_hmac() function with invalid hash algorithm --\n";
var_dump(hash_hmac('foo', $data, $key));
try {
var_dump(hash_hmac('foo', $data, $key));
}
catch (\Error $e) {
echo $e->getMessage() . "\n";
}
echo "\n-- Testing hash_hmac() function with non-cryptographic hash algorithm --\n";
var_dump(hash_hmac('crc32', $data, $key));
try {
var_dump(hash_hmac('crc32', $data, $key));
}
catch (\Error $e) {
echo $e->getMessage() . "\n";
}
?>
===Done===
--EXPECTF--
--EXPECT--
*** Testing hash_hmac() : error conditions ***
-- Testing hash_hmac() function with invalid hash algorithm --
Warning: hash_hmac(): Unknown hashing algorithm: foo in %s on line %d
bool(false)
Unknown hashing algorithm: foo
-- Testing hash_hmac() function with non-cryptographic hash algorithm --
Warning: hash_hmac(): Non-cryptographic hashing algorithm: crc32 in %s on line %d
bool(false)
Non-cryptographic hashing algorithm: crc32
===Done===

View File

@ -15,28 +15,40 @@ $file = __DIR__ . "hash_file.txt";
$key = 'secret';
echo "\n-- Testing hash_hmac_file() function with invalid hash algorithm --\n";
hash_hmac_file('foo', $file, $key, TRUE);
try {
var_dump(hash_hmac_file('foo', $file, $key, TRUE));
}
catch (\Error $e) {
echo $e->getMessage() . "\n";
}
echo "\n-- Testing hash_hmac_file() function with non-cryptographic hash algorithm --\n";
hash_hmac_file('crc32', $file, $key, TRUE);
try {
var_dump(hash_hmac_file('crc32', $file, $key, TRUE));
}
catch (\Error $e) {
echo $e->getMessage() . "\n";
}
echo "\n-- Testing hash_hmac_file() function with bad path --\n";
hash_hmac_file('md5', $file.chr(0).$file, $key, TRUE);
try {
var_dump(hash_hmac_file('md5', $file.chr(0).$file, $key, TRUE));
}
catch (\Error $e) {
echo $e->getMessage() . "\n";
}
?>
===Done===
--EXPECTF--
--EXPECT--
*** Testing hash() : error conditions ***
-- Testing hash_hmac_file() function with invalid hash algorithm --
Warning: hash_hmac_file(): Unknown hashing algorithm: foo in %s on line %d
Unknown hashing algorithm: foo
-- Testing hash_hmac_file() function with non-cryptographic hash algorithm --
Warning: hash_hmac_file(): Non-cryptographic hashing algorithm: crc32 in %s on line %d
Non-cryptographic hashing algorithm: crc32
-- Testing hash_hmac_file() function with bad path --
Warning: hash_hmac_file(): Invalid path in %s on line %d
Invalid path
===Done===