diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-10-22 19:55:00 +1000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-10-22 19:55:00 +1000 |
commit | 7035bdb3cfd26abe25c09b6845e2ea691ad82ccc (patch) | |
tree | ff9acc123163735e37b97c28469890644b01062d /src | |
parent | [SYSTEM] Check return code for getgroups and fwrite (diff) | |
download | dash-7035bdb3cfd26abe25c09b6845e2ea691ad82ccc.tar.gz dash-7035bdb3cfd26abe25c09b6845e2ea691ad82ccc.zip |
[BUILTIN] Fixed command -v segmentation fault
On Sat, Oct 21, 2006 at 02:19:18PM +0000, Gerrit Pape wrote: > Hi Herbert, please see > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=387458 > > On Thu, Sep 14, 2006 at 03:50:02PM +0200, Julien Danjou wrote: > > I just found this bug which is easily reproductible: > > > > % dash -c 'command -v' > > zsh: segmentation fault dash -c 'command -v' Since bash's behaviour is minimalist here, I've decided to adopt its behaviour here as well which is to return success silently.
Diffstat (limited to '')
-rw-r--r-- | src/exec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/exec.c b/src/exec.c index 417ba8a..c55683d 100644 --- a/src/exec.c +++ b/src/exec.c @@ -846,6 +846,7 @@ commandcmd(argc, argv) int argc; char **argv; { + char *cmd; int c; enum { VERIFY_BRIEF = 1, @@ -862,8 +863,9 @@ commandcmd(argc, argv) abort(); #endif - if (verify) - return describe_command(out1, *argptr, verify - VERIFY_BRIEF); + cmd = *argptr; + if (verify && cmd) + return describe_command(out1, cmd, verify - VERIFY_BRIEF); return 0; } |