]> granicus.if.org Git - php/commitdiff
Promote warnings to exceptions in ext/hash
authorMáté Kocsis <kocsismate@woohoolabs.com>
Wed, 18 Mar 2020 19:58:37 +0000 (20:58 +0100)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Tue, 24 Mar 2020 09:22:29 +0000 (10:22 +0100)
ext/hash/hash.c
ext/hash/tests/hash_error.phpt
ext/hash/tests/hash_file_error.phpt

index e4f8537676b0820ad6f6ee163d1743b72d4a0e5e..7ff7a312b960da1454dd708d7a4663c6a03bf6fc 100644 (file)
@@ -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) {
@@ -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);
index 8a54831c1a6dbe59d3fef83809046c32029a572b..9536110fd69a7179ab113201ca7123bb8e3e2931 100644 (file)
@@ -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
index eecd2638dad0319984c6eb9a349b05ecfe18aa4c..2130389a9421896b8d0bff1c161ee164bee4fad2 100644 (file)
@@ -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--
@@ -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 --