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 {