aboutsummaryrefslogtreecommitdiff
path: root/util/nvramtool/cmos_ops.c
diff options
context:
space:
mode:
authorPatrick Georgi <patrick@georgi-clan.de>2014-08-09 17:06:20 +0200
committerPatrick Georgi <patrick@georgi-clan.de>2014-08-12 22:15:20 +0200
commitdd1aab95a6eb74eac7ea0463f7933d186dbd0efb (patch)
treeb5c709f80ae610cf493e3284f57c273de7478ade /util/nvramtool/cmos_ops.c
parent42b1b8069c35a4e86772b600ea0264503bf20470 (diff)
nvramtool: plug some memory leaks
Change-Id: I8f672b872862d3448ccd2cf28fd3c05b0108ff8b Found-by: Coverity Scan Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/6561 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'util/nvramtool/cmos_ops.c')
-rw-r--r--util/nvramtool/cmos_ops.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/util/nvramtool/cmos_ops.c b/util/nvramtool/cmos_ops.c
index 91c9f451ac..cb6c37931d 100644
--- a/util/nvramtool/cmos_ops.c
+++ b/util/nvramtool/cmos_ops.c
@@ -95,7 +95,7 @@ int prepare_cmos_write(const cmos_entry_t * e, const char value_str[],
const cmos_enum_t *q;
unsigned long long out;
const char *p;
- char *memory;
+ char *memory = NULL;
int negative, result, found_one;
if ((result = prepare_cmos_op_common(e)) != OK)
@@ -155,8 +155,10 @@ int prepare_cmos_write(const cmos_entry_t * e, const char value_str[],
BUG();
}
- if ((e->length < (8 * sizeof(*value))) && (out >= (1ull << e->length)))
+ if ((e->length < (8 * sizeof(*value))) && (out >= (1ull << e->length))) {
+ if (memory) free(memory);
return CMOS_OP_VALUE_TOO_WIDE;
+ }
*value = out;
return OK;