]> granicus.if.org Git - php/commitdiff
Added missing error check inside bcpowmod().
authorIlia Alshanetsky <iliaa@php.net>
Fri, 8 Jun 2007 00:41:57 +0000 (00:41 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Fri, 8 Jun 2007 00:41:57 +0000 (00:41 +0000)
NEWS
ext/bcmath/bcmath.c

diff --git a/NEWS b/NEWS
index da8ff4af0db641fe360c35274d19797603556716..bd12cfb9c7812d4fbd626becffe2a1784d90163f 100644 (file)
--- 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)
index 3925c5e31164b9ac9f8d4a865ddb22fe8abff04e..7c6ebe525524a4d4cea68bbed0b8928dc4164d0a 100644 (file)
@@ -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);