From a2d121cc1bb8ef391f9171bb3799e1572904d74c Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 30 Sep 2016 11:30:11 +0200 Subject: [PATCH] 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 Signed-off-by: Herbert Xu Signed-off-by: Denys Vlasenko --- shell/ash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index 3fe4714c2..db943f6c7 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;