]> granicus.if.org Git - php/commitdiff
Warnings to Errors hash_equals
authorMark <mrandall@digitellinc.com>
Mon, 26 Aug 2019 22:44:20 +0000 (23:44 +0100)
committerJoe Watkins <krakjoe@php.net>
Thu, 29 Aug 2019 14:13:06 +0000 (16:13 +0200)
ext/hash/hash.c
ext/hash/tests/hash_equals.phpt

index 8a9485cb70f10edf2976b46784f26ffac3decc49..f968daf5efaff3fb2a641dec97f80b91b702d968 100644 (file)
@@ -864,13 +864,13 @@ PHP_FUNCTION(hash_equals)
 
        /* We only allow comparing string to prevent unexpected results. */
        if (Z_TYPE_P(known_zval) != IS_STRING) {
-               php_error_docref(NULL, E_WARNING, "Expected known_string to be a string, %s given", zend_zval_type_name(known_zval));
-               RETURN_FALSE;
+               zend_type_error("Expected known_string to be a string, %s given", zend_zval_type_name(known_zval));
+               return;
        }
 
        if (Z_TYPE_P(user_zval) != IS_STRING) {
-               php_error_docref(NULL, E_WARNING, "Expected user_string to be a string, %s given", zend_zval_type_name(user_zval));
-               RETURN_FALSE;
+               zend_type_error("Expected user_string to be a string, %s given", zend_zval_type_name(user_zval));
+               return;
        }
 
        if (Z_STRLEN_P(known_zval) != Z_STRLEN_P(user_zval)) {
index 0c8ab42f93b816d73151a3e2d08ae6b182f067e5..1716d3be6629ba28313c21e62accbde490004be5 100644 (file)
@@ -2,21 +2,36 @@
 Hash: hash_equals() test
 --FILE--
 <?php
-var_dump(hash_equals("same", "same"));
-var_dump(hash_equals("not1same", "not2same"));
-var_dump(hash_equals("short", "longer"));
-var_dump(hash_equals("longer", "short"));
-var_dump(hash_equals("", "notempty"));
-var_dump(hash_equals("notempty", ""));
-var_dump(hash_equals("", ""));
-var_dump(hash_equals(123, "NaN"));
-var_dump(hash_equals("NaN", 123));
-var_dump(hash_equals(123, 123));
-var_dump(hash_equals(null, ""));
-var_dump(hash_equals(null, 123));
-var_dump(hash_equals(null, null));
+
+function trycatch_dump(...$tests) {
+    foreach ($tests as $test) {
+        try {
+            var_dump($test());
+        }
+        catch (\Error $e) {
+            echo '[' . get_class($e) . '] ' . $e->getMessage() . "\n";
+        }
+    }
+}
+
+trycatch_dump(
+    fn() => hash_equals("same", "same"),
+    fn() => hash_equals("not1same", "not2same"),
+    fn() => hash_equals("short", "longer"),
+    fn() => hash_equals("longer", "short"),
+    fn() => hash_equals("", "notempty"),
+    fn() => hash_equals("notempty", ""),
+    fn() => hash_equals("", ""),
+    fn() => hash_equals(123, "NaN"),
+    fn() => hash_equals("NaN", 123),
+    fn() => hash_equals(123, 123),
+    fn() => hash_equals(null, ""),
+    fn() => hash_equals(null, 123),
+    fn() => hash_equals(null, null),
+);
+
 ?>
---EXPECTF--
+--EXPECT--
 bool(true)
 bool(false)
 bool(false)
@@ -24,21 +39,9 @@ bool(false)
 bool(false)
 bool(false)
 bool(true)
-
-Warning: hash_equals(): Expected known_string to be a string, int given in %s on line %d
-bool(false)
-
-Warning: hash_equals(): Expected user_string to be a string, int given in %s on line %d
-bool(false)
-
-Warning: hash_equals(): Expected known_string to be a string, int given in %s on line %d
-bool(false)
-
-Warning: hash_equals(): Expected known_string to be a string, null given in %s on line %d
-bool(false)
-
-Warning: hash_equals(): Expected known_string to be a string, null given in %s on line %d
-bool(false)
-
-Warning: hash_equals(): Expected known_string to be a string, null given in %s on line %d
-bool(false)
+[TypeError] Expected known_string to be a string, int given
+[TypeError] Expected user_string to be a string, int given
+[TypeError] Expected known_string to be a string, int given
+[TypeError] Expected known_string to be a string, null given
+[TypeError] Expected known_string to be a string, null given
+[TypeError] Expected known_string to be a string, null given