sh: Fix out of bounds array access when trap is used with an invalid signal.

MFC after:	1 week
This commit is contained in:
Jilles Tjoelker 2012-01-14 21:54:12 +00:00
parent c86072f5a7
commit 52c450395a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=230117

View File

@ -191,10 +191,11 @@ trapcmd(int argc, char **argv)
argv++; argv++;
} }
} }
while (*argv) { for (; *argv; argv++) {
if ((signo = sigstring_to_signum(*argv)) == -1) { if ((signo = sigstring_to_signum(*argv)) == -1) {
warning("bad signal %s", *argv); warning("bad signal %s", *argv);
errors = 1; errors = 1;
continue;
} }
INTOFF; INTOFF;
if (action) if (action)
@ -205,7 +206,6 @@ trapcmd(int argc, char **argv)
if (signo != 0) if (signo != 0)
setsignal(signo); setsignal(signo);
INTON; INTON;
argv++;
} }
return errors; return errors;
} }