From 6f59f8b0785f07d5450bbceb0cf67455eb65c1d8 Mon Sep 17 00:00:00 2001 From: Colin Viebrock Date: Tue, 5 Sep 2000 18:25:58 +0000 Subject: [PATCH] str_repeat() should be able to handle multipliers of 0 gracefully, IMHO ... Hope no one disagrees. :) --- ext/standard/string.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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); -- 2.50.1