From 7a3761ac0ce31ca09147dc988b788cd2b8e26c8e Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Mon, 19 Nov 2001 07:43:26 +0000 Subject: [PATCH] Plug memory leak in dvs_delete(). svn path=/trunk/yasm/; revision=352 --- libyasm/bytecode.c | 12 ++++++++++-- src/bytecode.c | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/libyasm/bytecode.c b/libyasm/bytecode.c index 00b8691f..bfc19cbf 100644 --- a/libyasm/bytecode.c +++ b/libyasm/bytecode.c @@ -350,8 +350,16 @@ dvs_delete(datavalhead *headp) cur = STAILQ_FIRST(headp); while (cur) { next = STAILQ_NEXT(cur, link); - if (cur->type == DV_EXPR) - expr_delete(cur->data.expn); + switch (cur->type) { + case DV_EXPR: + expr_delete(cur->data.expn); + break; + case DV_STRING: + xfree(cur->data.str_val); + break; + default: + break; + } xfree(cur); cur = next; } diff --git a/src/bytecode.c b/src/bytecode.c index 00b8691f..bfc19cbf 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -350,8 +350,16 @@ dvs_delete(datavalhead *headp) cur = STAILQ_FIRST(headp); while (cur) { next = STAILQ_NEXT(cur, link); - if (cur->type == DV_EXPR) - expr_delete(cur->data.expn); + switch (cur->type) { + case DV_EXPR: + expr_delete(cur->data.expn); + break; + case DV_STRING: + xfree(cur->data.str_val); + break; + default: + break; + } xfree(cur); cur = next; } -- 2.40.0