diff options
author | jilles <jilles@FreeBSD.org> | 2010-12-26 13:25:47 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2010-12-26 13:25:47 +0000 |
commit | de73f385a5709ba788137d94801ead1014f1c5f0 (patch) | |
tree | 02dc00ec14f40f9ed9b75e0e6b62988d28b2ba9f /bin/sh/parser.c | |
parent | 290c1ef87ffbfdb591c830fd2874a87241390022 (diff) | |
download | FreeBSD-src-de73f385a5709ba788137d94801ead1014f1c5f0.zip FreeBSD-src-de73f385a5709ba788137d94801ead1014f1c5f0.tar.gz |
sh: Allow arbitrary large numbers in CHECKSTRSPACE.
Reduce "stack string" API somewhat and simplify code.
Add a check for integer overflow of the "stack string" length (probably
incomplete).
Diffstat (limited to 'bin/sh/parser.c')
-rw-r--r-- | bin/sh/parser.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/bin/sh/parser.c b/bin/sh/parser.c index e292ad0..4a2ffa4 100644 --- a/bin/sh/parser.c +++ b/bin/sh/parser.c @@ -1093,9 +1093,8 @@ done: popfile(); tokpushback = 0; } - while (stackblocksize() <= savelen) - growstackblock(); STARTSTACKSTR(out); + CHECKSTRSPACE(savelen + 1, out); INTOFF; if (str) { memcpy(out, str, savelen); |