diff options
author | Denis Vlasenko | 2006-10-16 01:33:16 +0000 |
---|---|---|
committer | Denis Vlasenko | 2006-10-16 01:33:16 +0000 |
commit | 5f03158f66dc2c73b052307f3871c4341fbabb8e (patch) | |
tree | 5500d4ec05d4c3c63f90a86fd227fc5870403213 /shell/ash.c | |
parent | d0e70af9d1065400a3ed478393dcd3873d1cb7d8 (diff) | |
download | busybox-5f03158f66dc2c73b052307f3871c4341fbabb8e.zip busybox-5f03158f66dc2c73b052307f3871c4341fbabb8e.tar.gz |
ash: fix segfault in ash.
patch by walter harms <wharms@bfs.de>
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c index 1260d5e..a34c871 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -3042,6 +3042,7 @@ expredir(union node *n) for (redir = n ; redir ; redir = redir->nfile.next) { struct arglist fn; + memset(&fn, 0, sizeof(struct arglist)); fn.lastp = &fn.list; switch (redir->type) { case NFROMTO: @@ -3056,7 +3057,10 @@ expredir(union node *n) case NTOFD: if (redir->ndup.vname) { expandarg(redir->ndup.vname, &fn, EXP_FULL | EXP_TILDE); - fixredir(redir, fn.list->text, 1); + if (fn.list != NULL) + fixredir(redir, fn.list->text, 1); + else + sh_error("redir error"); } break; } |