diff options
author | Denys Vlasenko | 2016-09-30 11:30:11 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-09-30 11:30:11 +0200 |
commit | a2d121cc1bb8ef391f9171bb3799e1572904d74c (patch) | |
tree | a73704fff2dfa0eb7b70a2697164a42c32bcb08f /shell/ash.c | |
parent | 53d6e03a0acb31cdb5c6e5679cf8a9ddd8c09ba5 (diff) | |
download | busybox-a2d121cc1bb8ef391f9171bb3799e1572904d74c.zip busybox-a2d121cc1bb8ef391f9171bb3799e1572904d74c.tar.gz |
ash: [EVAL] Avoid using undefined handler
Upstream commit:
Date: Fri, 8 Jul 2011 16:41:24 +0800
[EVAL] Avoid using undefined handler
* src/eval.c (evalbltin, evalfun): Set savehandler before calling
setjmp with the possible "goto *done", where savehandler is used.
Otherwise, clang warns that "Assigned value is garbage or undefined"
at the point where "savehandler" is used on the RHS.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c index 3fe4714..db943f6 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -8944,12 +8944,12 @@ evalfun(struct funcnode *func, int argc, char **argv, int flags) saveparam = shellparam; savelocalvars = localvars; + savehandler = exception_handler; e = setjmp(jmploc.loc); if (e) { goto funcdone; } INT_OFF; - savehandler = exception_handler; exception_handler = &jmploc; localvars = NULL; shellparam.malloced = 0; @@ -9595,10 +9595,10 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv) int i; savecmdname = commandname; + savehandler = exception_handler; i = setjmp(jmploc.loc); if (i) goto cmddone; - savehandler = exception_handler; exception_handler = &jmploc; commandname = argv[0]; argptr = argv + 1; |