From 9742ae1d11dab3357835fab7d7e3577dde4e0480 Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Thu, 16 May 2019 22:27:45 -0600 Subject: util/romcc: Fix memory leak The 'new_type' function already allocates memory, so it is only necessary to clone the existing type if this function is not called. Change-Id: I47065204c5f4b6bab022bd7ccf19838c3ce1f86e Signed-off-by: Jacob Garber Found-by: Coverity Scan CID 1129106 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32921 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- util/romcc/romcc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'util/romcc') diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c index 285b0237f4..d60a9a7f83 100644 --- a/util/romcc/romcc.c +++ b/util/romcc/romcc.c @@ -12601,7 +12601,9 @@ static struct type *struct_declarator( } type = new_type(TYPE_BITFIELD, type, 0); type->elements = value->u.cval; - } + } else + type = clone_type(0, type); + return type; } @@ -12656,7 +12658,6 @@ static struct type *struct_or_union_specifier( done = 0; eat(state, TOK_COMMA); } - type = clone_type(0, type); type->field_ident = fident; if (*next) { *next = new_type(type_join, *next, type); -- cgit v1.2.3