@@ -399,7 +399,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
399
399
char * temppos , padding ;
400
400
zend_string * result ;
401
401
int always_sign ;
402
- int bad_arg_number = 0 ;
402
+ int max_missing_argnum = -1 ;
403
403
404
404
result = zend_string_alloc (size , 0 );
405
405
@@ -527,7 +527,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
527
527
PRINTF_DEBUG (("sprintf: format character='%c'\n" , * format ));
528
528
529
529
if (argnum >= argc ) {
530
- bad_arg_number = 1 ;
530
+ max_missing_argnum = MAX ( max_missing_argnum , argnum ) ;
531
531
continue ;
532
532
}
533
533
@@ -626,12 +626,12 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
626
626
}
627
627
}
628
628
629
- if (bad_arg_number == 1 ) {
629
+ if (max_missing_argnum >= 0 ) {
630
630
efree (result );
631
631
if (nb_additional_parameters == -1 ) {
632
- zend_value_error ("The arguments array must contain %d items, %d given" , argnum + 1 , argc );
632
+ zend_value_error ("The arguments array must contain %d items, %d given" , max_missing_argnum + 1 , argc );
633
633
} else {
634
- zend_argument_count_error ("%d parameters are required, %d given" , argnum + nb_additional_parameters + 1 , argc + nb_additional_parameters );
634
+ zend_argument_count_error ("%d parameters are required, %d given" , max_missing_argnum + nb_additional_parameters + 1 , argc + nb_additional_parameters );
635
635
}
636
636
return NULL ;
637
637
}
0 commit comments