From c43179fb6bf31f1b27751c648e8cff5e8754803b Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 29 Oct 2019 13:12:37 +0100 Subject: [PATCH] Promote base_convert "invalid base" errors to ValueError --- ext/standard/math.c | 8 +++---- .../tests/math/base_convert_error.phpt | 22 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ext/standard/math.c b/ext/standard/math.c index 200c662dcaf..ef5beeb1601 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -1098,12 +1098,12 @@ PHP_FUNCTION(base_convert) } if (frombase < 2 || frombase > 36) { - php_error_docref(NULL, E_WARNING, "Invalid `from base' (" ZEND_LONG_FMT ")", frombase); - RETURN_FALSE; + zend_value_error("Invalid `from base' (" ZEND_LONG_FMT ")", frombase); + return; } if (tobase < 2 || tobase > 36) { - php_error_docref(NULL, E_WARNING, "Invalid `to base' (" ZEND_LONG_FMT ")", tobase); - RETURN_FALSE; + zend_value_error("Invalid `to base' (" ZEND_LONG_FMT ")", tobase); + return; } _php_math_basetozval(Z_STR_P(number), (int)frombase, &temp); diff --git a/ext/standard/tests/math/base_convert_error.phpt b/ext/standard/tests/math/base_convert_error.phpt index 5bd64a536bb..279cfe7924b 100644 --- a/ext/standard/tests/math/base_convert_error.phpt +++ b/ext/standard/tests/math/base_convert_error.phpt @@ -14,9 +14,16 @@ class classA { } -echo "Incorrect input\n"; -base_convert(1234, 1, 10); -base_convert(1234, 10, 37); +try { + base_convert(1234, 1, 10); +} catch (ValueError $e) { + echo $e->getMessage(), "\n"; +} +try { + base_convert(1234, 10, 37); +} catch (ValueError $e) { + echo $e->getMessage(), "\n"; +} try { base_convert(new classA(), 8, 10); @@ -25,11 +32,8 @@ try { } ?> ---EXPECTF-- +--EXPECT-- *** Testing base_convert() : error conditions *** -Incorrect input - -Warning: base_convert(): Invalid `from base' (1) in %s on line %d - -Warning: base_convert(): Invalid `to base' (37) in %s on line %d +Invalid `from base' (1) +Invalid `to base' (37) Object of class classA could not be converted to string