summaryrefslogtreecommitdiff
path: root/jim.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2018-07-08 21:29:05 +1000
committerSteve Bennett <steveb@workware.net.au>2018-07-08 21:48:04 +1000
commit98d44a6b727af92fb5bc3da7c0a186888ed54ad7 (patch)
tree102ca06f67f78704e0c219ea24cbed3cd46e5d36 /jim.c
parent8f7471a0fb00587a3cd6e6c12da1adba6c7dc96a (diff)
foreach: Avoid memory leak in case of error
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r--jim.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/jim.c b/jim.c
index 79f126c..1270330 100644
--- a/jim.c
+++ b/jim.c
@@ -11899,7 +11899,7 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc, Jim_Obj *const *arg
}
if (result != JIM_OK) {
Jim_SetResultString(interp, "foreach varlist is empty", -1);
- return result;
+ goto empty_varlist;
}
if (doMap) {
@@ -11962,6 +11962,7 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc, Jim_Obj *const *arg
Jim_SetResult(interp, resultObj);
err:
Jim_DecrRefCount(interp, resultObj);
+ empty_varlist:
if (numargs > 2) {
Jim_Free(iters);
}