From 9adafbc1184a413999e7c8bbfc2de85bda3e0b97 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 13 Dec 2024 19:06:58 +0100 Subject: cut: prevent infinite loop if -F REGEX matches empty delimiter function old new delta cut_main 1339 1348 +9 Signed-off-by: Denys Vlasenko --- coreutils/cut.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/coreutils/cut.c b/coreutils/cut.c index 1e9867858..e12c56732 100644 --- a/coreutils/cut.c +++ b/coreutils/cut.c @@ -228,7 +228,9 @@ static void cut_file(FILE *file, const char *delim, const char *odelim, continue; } end = next + rr.rm_so; - next += rr.rm_eo; + next += (rr.rm_eo ? rr.rm_eo : 1); + /* ^^^ advancing by at least 1 prevents infinite loops */ + /* testcase: echo "no at sign" | cut -d'@*' -F 1- */ } else #endif { -- cgit v1.2.3-55-g6feb