cut: prevent infinite loop if -F REGEX matches empty delimiter

function                                             old     new   delta
cut_main                                            1339    1348      +9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2024-12-13 19:06:58 +01:00
parent a4894eaf71
commit 9adafbc118

View file

@ -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
{