From: Colin Viebrock Date: Tue, 5 Sep 2000 18:25:58 +0000 (+0000) Subject: str_repeat() should be able to handle multipliers of 0 gracefully, IMHO ... X-Git-Tag: php-4.0.3RC1~294 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6f59f8b0785f07d5450bbceb0cf67455eb65c1d8;p=php str_repeat() should be able to handle multipliers of 0 gracefully, IMHO ... Hope no one disagrees. :) --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 9df17e46e0..d95c96b900 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2553,8 +2553,8 @@ PHP_FUNCTION(str_repeat) convert_to_string_ex(input_str); convert_to_long_ex(mult); - if ((*mult)->value.lval < 1) { - php_error(E_WARNING, "Second argument to %s() has to be greater than 0", + if ((*mult)->value.lval < 0) { + php_error(E_WARNING, "Second argument to %s() has to be greater than or equal to 0", get_active_function_name()); return; } @@ -2563,6 +2563,10 @@ PHP_FUNCTION(str_repeat) if ((*input_str)->value.str.len == 0) RETURN_STRINGL(empty_string, 0, 1); + /* ... or if the multiplier is zero */ + if ((*mult)->value.lval == 0) + RETURN_STRINGL(empty_string, 0, 1); + /* Initialize the result string */ result_len = (*input_str)->value.str.len * (*mult)->value.lval; result = (char *)emalloc(result_len + 1);