From: Ilia Alshanetsky Date: Sun, 15 Feb 2004 17:23:11 +0000 (+0000) Subject: MFH: Fixed bug #27258 (moved FPE check to correct location). X-Git-Tag: php-4.3.5RC3~11 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=938e964beb550701d7a710c284c3bba62d0195d0;p=php MFH: Fixed bug #27258 (moved FPE check to correct location). Fixed several possible FPE. --- diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index b8b6770918..6b08129cdd 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -309,6 +309,11 @@ static inline void gmp_zval_binary_ui_op_ex(zval *return_value, zval **a_arg, zv FETCH_GMP_ZVAL(gmpnum_b, b_arg); } + convert_to_long_ex(b_arg); + if (!Z_LVAL_PP(b_arg)) { + RETURN_FALSE; + } + INIT_GMP_NUM(gmpnum_result); if(use_ui && gmp_ui_op) { if(allow_ui_return) { @@ -348,6 +353,11 @@ static inline void gmp_zval_binary_ui_op2_ex(zval *return_value, zval **a_arg, z FETCH_GMP_ZVAL(gmpnum_b, b_arg); } + convert_to_long_ex(b_arg); + if (!Z_LVAL_PP(b_arg)) { + RETURN_FALSE; + } + INIT_GMP_NUM(gmpnum_result1); INIT_GMP_NUM(gmpnum_result2); @@ -814,11 +824,6 @@ ZEND_FUNCTION(gmp_powm) WRONG_PARAM_COUNT; } - convert_to_long_ex(mod_arg); - if (!Z_LVAL_PP(mod_arg)) { - RETURN_FALSE; - } - FETCH_GMP_ZVAL(gmpnum_base, base_arg); if(Z_TYPE_PP(exp_arg) == IS_LONG && Z_LVAL_PP(exp_arg) >= 0) { use_ui=1; @@ -827,6 +832,11 @@ ZEND_FUNCTION(gmp_powm) } FETCH_GMP_ZVAL(gmpnum_mod, mod_arg); + convert_to_long_ex(mod_arg); + if (!Z_LVAL_PP(mod_arg)) { + RETURN_FALSE; + } + INIT_GMP_NUM(gmpnum_result); if(use_ui) { mpz_powm_ui(*gmpnum_result, *gmpnum_base, (unsigned long)Z_LVAL_PP(exp_arg), *gmpnum_mod);