aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2019-02-25 14:00:31 +0800
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:55 +0000
commit4bfffb1572c9d1b77538b5a3e92c27f91bd2ee99 (patch)
treed1a15f5d90e1b347583c0930cdf7afeb9135a911
parent871ec43d428db7327b73ecc099e0ab680a32ab4d (diff)
downloadklibc-4bfffb1572c9d1b77538b5a3e92c27f91bd2ee99.tar.gz
[klibc] dash: expand: Fix double-decrement in argstr
[ dash commit 86a841bb444ed1d9a09afb38cb818a21c04e1beb ] Due to a double decrement in argstr we may miss field separators at the end of a word in certain situations. Reported-by: Martijn Dekker <martijn@inlv.org> Fixes: 3cd538634f71 ("expand: Do not reprocess data when...") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/dash/expand.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr/dash/expand.c b/usr/dash/expand.c
index 20362cef82af7..562a48690af01 100644
--- a/usr/dash/expand.c
+++ b/usr/dash/expand.c
@@ -285,7 +285,7 @@ start:
q = stnputs(p, length, expdest);
q[-1] &= end - 1;
expdest = q - (flag & EXP_WORD ? end : 0);
- newloc = expdest - (char *)stackblock() - end;
+ newloc = q - (char *)stackblock() - end;
if (breakall && !inquotes && newloc > startloc) {
recordregion(startloc, newloc, 0);
}