diff options
author | Steve Bennett <steveb@workware.net.au> | 2018-07-08 21:29:05 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2018-07-08 21:48:04 +1000 |
commit | 98d44a6b727af92fb5bc3da7c0a186888ed54ad7 (patch) | |
tree | 102ca06f67f78704e0c219ea24cbed3cd46e5d36 /jim.c | |
parent | 8f7471a0fb00587a3cd6e6c12da1adba6c7dc96a (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.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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); } |