BR 852464: Fix memory leak in %if/%elseif

This commit is contained in:
H. Peter Anvin 2007-11-26 22:02:21 -08:00
parent 00927db7e2
commit 7061ad73fe

View File

@ -2121,13 +2121,13 @@ static int do_directive(Token * tline)
else {
j = if_condition(tline->next, i);
tline->next = NULL; /* it got freed */
free_tlist(origline);
j = j < 0 ? COND_NEVER : j ? COND_IF_TRUE : COND_IF_FALSE;
}
cond = nasm_malloc(sizeof(Cond));
cond->next = istk->conds;
cond->state = j;
istk->conds = cond;
free_tlist(origline);
return DIRECTIVE_FOUND;
CASE_PP_ELIF:
@ -2147,10 +2147,10 @@ static int do_directive(Token * tline)
*/
j = if_condition(expand_mmac_params(tline->next), i);
tline->next = NULL; /* it got freed */
free_tlist(origline);
istk->conds->state =
j < 0 ? COND_NEVER : j ? COND_IF_TRUE : COND_IF_FALSE;
}
free_tlist(origline);
return DIRECTIVE_FOUND;
case PP_ELSE: