From 1bd2791cd4e814e394066141590e38d948b69bb3 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Fri, 8 Jun 2007 00:41:57 +0000 Subject: Added missing error check inside bcpowmod(). --- ext/bcmath/bcmath.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'ext/bcmath') 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); -- cgit v1.2.1