@@ -312,6 +312,11 @@ static inline void gmp_zval_binary_ui_op_ex(zval *return_value, zval **a_arg, zv
312
312
FETCH_GMP_ZVAL (gmpnum_b , b_arg );
313
313
}
314
314
315
+ convert_to_long_ex (b_arg );
316
+ if (!Z_LVAL_PP (b_arg )) {
317
+ RETURN_FALSE ;
318
+ }
319
+
315
320
INIT_GMP_NUM (gmpnum_result );
316
321
317
322
if (use_ui && gmp_ui_op ) {
@@ -353,6 +358,11 @@ static inline void gmp_zval_binary_ui_op2_ex(zval *return_value, zval **a_arg, z
353
358
FETCH_GMP_ZVAL (gmpnum_b , b_arg );
354
359
}
355
360
361
+ convert_to_long_ex (b_arg );
362
+ if (!Z_LVAL_PP (b_arg )) {
363
+ RETURN_FALSE ;
364
+ }
365
+
356
366
INIT_GMP_NUM (gmpnum_result1 );
357
367
INIT_GMP_NUM (gmpnum_result2 );
358
368
@@ -825,11 +835,6 @@ ZEND_FUNCTION(gmp_powm)
825
835
WRONG_PARAM_COUNT ;
826
836
}
827
837
828
- convert_to_long_ex (mod_arg );
829
- if (!Z_LVAL_PP (mod_arg )) {
830
- RETURN_FALSE ;
831
- }
832
-
833
838
FETCH_GMP_ZVAL (gmpnum_base , base_arg );
834
839
835
840
if (Z_TYPE_PP (exp_arg ) == IS_LONG && Z_LVAL_PP (exp_arg ) >= 0 ) {
@@ -839,6 +844,11 @@ ZEND_FUNCTION(gmp_powm)
839
844
}
840
845
FETCH_GMP_ZVAL (gmpnum_mod , mod_arg );
841
846
847
+ convert_to_long_ex (mod_arg );
848
+ if (!Z_LVAL_PP (mod_arg )) {
849
+ RETURN_FALSE ;
850
+ }
851
+
842
852
INIT_GMP_NUM (gmpnum_result );
843
853
if (use_ui ) {
844
854
mpz_powm_ui (* gmpnum_result , * gmpnum_base , (unsigned long )Z_LVAL_PP (exp_arg ), * gmpnum_mod );
0 commit comments