From: Ilia Alshanetsky Date: Fri, 8 Jun 2007 00:41:57 +0000 (+0000) Subject: Added missing error check inside bcpowmod(). X-Git-Tag: php-5.2.4RC1~383 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bd2791cd4e814e394066141590e38d948b69bb3;p=php Added missing error check inside bcpowmod(). --- diff --git a/NEWS b/NEWS index da8ff4af0d..bd12cfb9c7 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ PHP NEWS - Added missing open_basedir checks to CGI. (anight at eyelinkmedia dot com, Tony) - Added missing format validator to unpack() function. (Ilia) +- Added missing error check inside bcpowmod(). (Ilia) - Fixed several integer overflows in ImageCreate(), ImageCreateTrueColor(), ImageCopyResampled() and ImageFilledPolygon() reported by Mattias Bengtsson. (Tony) diff --git a/ext/bcmath/bcmath.c b/ext/bcmath/bcmath.c index 3925c5e311..7c6ebe5255 100644 --- a/ext/bcmath/bcmath.c +++ b/ext/bcmath/bcmath.c @@ -465,13 +465,17 @@ PHP_FUNCTION(bcpowmod) scale_int = (int) ((int)scale < 0) ? 0 : scale; - bc_raisemod(first, second, mod, &result, scale_int TSRMLS_CC); - if (result->n_scale > scale) { - result->n_scale = scale; + if (bc_raisemod(first, second, mod, &result, scale_int TSRMLS_CC) != -1) { + if (result->n_scale > scale) { + result->n_scale = scale; + } + Z_STRVAL_P(return_value) = bc_num2str(result); + Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value)); + Z_TYPE_P(return_value) = IS_STRING; + } else { + RETVAL_FALSE; } - Z_STRVAL_P(return_value) = bc_num2str(result); - Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value)); - Z_TYPE_P(return_value) = IS_STRING; + bc_free_num(&first); bc_free_num(&second); bc_free_num(&mod);