diff options
| author | Antony Dovgal <tony2001@php.net> | 2007-11-01 09:34:18 +0000 |
|---|---|---|
| committer | Antony Dovgal <tony2001@php.net> | 2007-11-01 09:34:18 +0000 |
| commit | 67bb38424f66f330b6ef192eba47e04baee95713 (patch) | |
| tree | 7e7bba80805d794cab13e8104885593b517810ac /ext | |
| parent | 20c86e5afd60ec72044fc5da8079271d2c01e999 (diff) | |
| download | php-git-67bb38424f66f330b6ef192eba47e04baee95713.tar.gz | |
fix reading uninitialized values
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/gmp/gmp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index 7056fd4b2e..44995e5e5a 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -1064,8 +1064,8 @@ ZEND_FUNCTION(gmp_pow) mpz_ui_pow_ui(*gmpnum_result, Z_LVAL_PP(base_arg), exp); } else { mpz_pow_ui(*gmpnum_result, *gmpnum_base, exp); + FREE_GMP_TEMP(temp_base); } - FREE_GMP_TEMP(temp_base); ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp); } /* }}} */ @@ -1098,7 +1098,9 @@ ZEND_FUNCTION(gmp_powm) if (!mpz_cmp_ui(*gmpnum_mod, 0)) { FREE_GMP_TEMP(temp_base); - FREE_GMP_TEMP(temp_exp); + if (use_ui) { + FREE_GMP_TEMP(temp_exp); + } FREE_GMP_TEMP(temp_mod); RETURN_FALSE; } @@ -1108,10 +1110,10 @@ ZEND_FUNCTION(gmp_powm) mpz_powm_ui(*gmpnum_result, *gmpnum_base, (unsigned long)Z_LVAL_PP(exp_arg), *gmpnum_mod); } else { mpz_powm(*gmpnum_result, *gmpnum_base, *gmpnum_exp, *gmpnum_mod); + FREE_GMP_TEMP(temp_exp); } FREE_GMP_TEMP(temp_base); - FREE_GMP_TEMP(temp_exp); FREE_GMP_TEMP(temp_mod); ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp); |
