Patch base-convert-notice for Math related Bug #61740
Patch version 2016-06-30 12:10 UTC
Return to Bug #61740 |
Download this patch
Patch Revisions:
Developer: cmb@php.net
ext/standard/math.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 0a408d0..eb0f7d6 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -1020,6 +1020,7 @@ PHPAPI int _php_math_basetozval(zval *arg, int base, zval *ret)
char c, *s;
zend_long cutoff;
int cutlim;
+ zend_bool invalid_chars_ignored = 0;
if (Z_TYPE_P(arg) != IS_STRING || base < 2 || base > 36) {
return FAILURE;
@@ -1040,11 +1041,15 @@ PHPAPI int _php_math_basetozval(zval *arg, int base, zval *ret)
c -= 'A' - 10;
else if (c >= 'a' && c <= 'z')
c -= 'a' - 10;
- else
+ else {
+ invalid_chars_ignored |= 1;
continue;
+ }
- if (c >= base)
+ if (c >= base) {
+ invalid_chars_ignored |= 1;
continue;
+ }
switch (mode) {
case 0: /* Integer */
@@ -1060,6 +1065,10 @@ PHPAPI int _php_math_basetozval(zval *arg, int base, zval *ret)
fnum = fnum * base + c;
}
}
+
+ if (invalid_chars_ignored) {
+ php_error_docref(NULL, E_NOTICE, "Invalid characters ignored");
+ }
if (mode == 1) {
ZVAL_DOUBLE(ret, fnum);
|