diff options
author | Larry Doolittle <ldoolitt@recycle.lbl.gov> | 2008-03-07 20:22:17 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2008-05-02 14:09:34 +0800 |
commit | c07f66d14e9b77db9ecc17fb77a3077511a0aa46 (patch) | |
tree | 8daa1fcad1415fee0efd7cd790dc47b4d753997c /src | |
parent | [EXPAND] Fix slash treatment in expmeta (diff) | |
download | dash-c07f66d14e9b77db9ecc17fb77a3077511a0aa46.tar.gz dash-c07f66d14e9b77db9ecc17fb77a3077511a0aa46.zip |
[JOBS] Fix cmdtxt crash on if statements
(Herbert: for context, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=467065 ) This is a real bug in upstream dash, which has existed since at least dash-0.5.1 (July 2004). It is a latent bug in cmdtxt() (which I think applies only to pipes) as it handles "if" commands. The attached patch fixes it for me. It's possible this patch will fix one or more of #462414, #462977, and #463649. I'll send messages there to see if the submitters can test. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src')
-rw-r--r-- | src/jobs.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/jobs.c b/src/jobs.c index 529d615..40dc8f6 100644 --- a/src/jobs.c +++ b/src/jobs.c @@ -1235,11 +1235,12 @@ donode: cmdputs("if "); cmdtxt(n->nif.test); cmdputs("; then "); - n = n->nif.ifpart; if (n->nif.elsepart) { - cmdtxt(n); + cmdtxt(n->nif.ifpart); cmdputs("; else "); n = n->nif.elsepart; + } else { + n = n->nif.ifpart; } p = "; fi"; goto dotail; |