diff --git usr.bin/m4/eval.c usr.bin/m4/eval.c index fbd42aa..cc052b7 100644 --- usr.bin/m4/eval.c +++ usr.bin/m4/eval.c @@ -688,7 +688,8 @@ dotrace(const char *argv[], int argc, int on) static void doifelse(const char *argv[], int argc) { - cycle { + /* Need at least 5 elements to safely evaluate expressions. */ + while (argc > 4) { if (STREQ(argv[2], argv[3])) pbstr(argv[4]); else if (argc == 6)