diff options
author | Jim Meyering <meyering@redhat.com> | 2011-07-08 16:41:24 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-07-08 16:41:24 +0800 |
commit | 4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b (patch) | |
tree | ed8fdc5ff4e5aa339b55f496785079282a2732b8 | |
parent | [MEMALLOC] Avoid clang warning about dead store to "size" (diff) | |
download | dash-4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b.tar.gz dash-4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b.zip |
[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>
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/eval.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 768374a..70bce7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ * Optimize dash -c "command" to avoid a fork. * Eliminate unnecessary promotion in echocmd. +2011-05-25 Jim Meyering <meyering@redhat.com> + + * Avoid using undefined handler. + 2011-05-23 Jim Meyering <meyering@redhat.com> * Avoid gcc warning: variable 'oldstackp' set but not used. diff --git a/src/eval.c b/src/eval.c index 6e7b932..95d30f4 100644 --- a/src/eval.c +++ b/src/eval.c @@ -897,9 +897,9 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags) int i; savecmdname = commandname; + savehandler = handler; if ((i = setjmp(jmploc.loc))) goto cmddone; - savehandler = handler; handler = &jmploc; commandname = argv[0]; argptr = argv + 1; @@ -930,11 +930,11 @@ evalfun(struct funcnode *func, int argc, char **argv, int flags) saveparam = shellparam; savefuncline = funcline; + savehandler = handler; if ((e = setjmp(jmploc.loc))) { goto funcdone; } INTOFF; - savehandler = handler; handler = &jmploc; shellparam.malloc = 0; func->count++; |