@@ -197,8 +197,7 @@ PHP_FUNCTION(bcadd)
197197
198198 if (scale_param_is_null ) {
199199 scale = BCG (bc_precision );
200- } else if (scale_param < 0 || scale_param > INT_MAX ) {
201- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
200+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
202201 RETURN_THROWS ();
203202 } else {
204203 scale = (int ) scale_param ;
@@ -247,8 +246,7 @@ PHP_FUNCTION(bcsub)
247246
248247 if (scale_param_is_null ) {
249248 scale = BCG (bc_precision );
250- } else if (scale_param < 0 || scale_param > INT_MAX ) {
251- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
249+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
252250 RETURN_THROWS ();
253251 } else {
254252 scale = (int ) scale_param ;
@@ -297,8 +295,7 @@ PHP_FUNCTION(bcmul)
297295
298296 if (scale_param_is_null ) {
299297 scale = BCG (bc_precision );
300- } else if (scale_param < 0 || scale_param > INT_MAX ) {
301- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
298+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
302299 RETURN_THROWS ();
303300 } else {
304301 scale = (int ) scale_param ;
@@ -347,8 +344,7 @@ PHP_FUNCTION(bcdiv)
347344
348345 if (scale_param_is_null ) {
349346 scale = BCG (bc_precision );
350- } else if (scale_param < 0 || scale_param > INT_MAX ) {
351- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
347+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
352348 RETURN_THROWS ();
353349 } else {
354350 scale = (int ) scale_param ;
@@ -402,8 +398,7 @@ PHP_FUNCTION(bcmod)
402398
403399 if (scale_param_is_null ) {
404400 scale = BCG (bc_precision );
405- } else if (scale_param < 0 || scale_param > INT_MAX ) {
406- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
401+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
407402 RETURN_THROWS ();
408403 } else {
409404 scale = (int ) scale_param ;
@@ -458,8 +453,7 @@ PHP_FUNCTION(bcpowmod)
458453
459454 if (scale_param_is_null ) {
460455 scale = BCG (bc_precision );
461- } else if (scale_param < 0 || scale_param > INT_MAX ) {
462- zend_argument_value_error (4 , "must be between 0 and %d" , INT_MAX );
456+ } else if (bcmath_check_scale (scale_param , 4 ) == FAILURE ) {
463457 RETURN_THROWS ();
464458 } else {
465459 scale = (int ) scale_param ;
@@ -535,8 +529,7 @@ PHP_FUNCTION(bcpow)
535529
536530 if (scale_param_is_null ) {
537531 scale = BCG (bc_precision );
538- } else if (scale_param < 0 || scale_param > INT_MAX ) {
539- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
532+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
540533 RETURN_THROWS ();
541534 } else {
542535 scale = (int ) scale_param ;
@@ -597,8 +590,7 @@ PHP_FUNCTION(bcsqrt)
597590
598591 if (scale_param_is_null ) {
599592 scale = BCG (bc_precision );
600- } else if (scale_param < 0 || scale_param > INT_MAX ) {
601- zend_argument_value_error (2 , "must be between 0 and %d" , INT_MAX );
593+ } else if (bcmath_check_scale (scale_param , 2 ) == FAILURE ) {
602594 RETURN_THROWS ();
603595 } else {
604596 scale = (int ) scale_param ;
@@ -642,8 +634,7 @@ PHP_FUNCTION(bccomp)
642634
643635 if (scale_param_is_null ) {
644636 scale = BCG (bc_precision );
645- } else if (scale_param < 0 || scale_param > INT_MAX ) {
646- zend_argument_value_error (3 , "must be between 0 and %d" , INT_MAX );
637+ } else if (bcmath_check_scale (scale_param , 3 ) == FAILURE ) {
647638 RETURN_THROWS ();
648639 } else {
649640 scale = (int ) scale_param ;
@@ -783,8 +774,7 @@ PHP_FUNCTION(bcscale)
783774 old_scale = BCG (bc_precision );
784775
785776 if (!new_scale_is_null ) {
786- if (new_scale < 0 || new_scale > INT_MAX ) {
787- zend_argument_value_error (1 , "must be between 0 and %d" , INT_MAX );
777+ if (bcmath_check_scale (new_scale , 1 ) == FAILURE ) {
788778 RETURN_THROWS ();
789779 }
790780
0 commit comments