From 98b38556aad3e5c8c3d2249f38dc6ff7439eb531 Mon Sep 17 00:00:00 2001 From: rlar Date: Mon, 1 Oct 2012 21:09:26 +0200 Subject: [PATCH] com_alter_common(), cleanup storage more thoroughly (on error) --- src/frontend/device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/frontend/device.c b/src/frontend/device.c index 339f6b549..de51688da 100644 --- a/src/frontend/device.c +++ b/src/frontend/device.c @@ -1366,11 +1366,11 @@ com_alter_common(wordlist *wl, int do_model) dv = ft_evaluate(names); if (!dv) - return; + goto done; if (dv->v_length < 1) { fprintf(cp_err, "Error: cannot evaluate new parameter value.\n"); - return; + goto done; } /* If we want alter the geometry of a MOS device @@ -1383,6 +1383,8 @@ com_alter_common(wordlist *wl, int do_model) /* va: garbage collection for dv, if pnode names is no simple value */ if (names->pn_value == NULL && dv != NULL) vec_free(dv); + +done: free_pnode(names); /* free also dv, if pnode names is simple value */ }