diff options
author | Jacob Garber <jgarber1@ualberta.ca> | 2019-05-16 22:27:45 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-05-23 09:02:07 +0000 |
commit | 9742ae1d11dab3357835fab7d7e3577dde4e0480 (patch) | |
tree | 2b72d9fdbbc7508fecf42acf6438092150714edc /util/romcc | |
parent | 4b688ab3fe6a8db4985a6e6cdad5def661f4066a (diff) |
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 <jgarber1@ualberta.ca>
Found-by: Coverity Scan CID 1129106
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32921
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'util/romcc')
-rw-r--r-- | util/romcc/romcc.c | 5 |
1 files changed, 3 insertions, 2 deletions
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); |