From 2c557c3168b37b42d4dec1b5aa2298e7ce7597ad Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 10 Sep 2014 15:46:04 -0400 Subject: [PATCH 06/18] Make sure data created for load options is freed. Covscan... may not be right about this one. But it's better to be sure. Signed-off-by: Peter Jones --- src/lib/efi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/efi.c b/src/lib/efi.c index 4218eb5..7dc3c92 100644 --- a/src/lib/efi.c +++ b/src/lib/efi.c @@ -939,6 +939,7 @@ append_extra_args(uint8_t **data, size_t *data_size) free(new_data); if (ret < 0) return -1; + new_data = NULL; new_data_size = 0; } @@ -946,15 +947,21 @@ append_extra_args(uint8_t **data, size_t *data_size) ret = append_extra_args_unicode(&new_data, &new_data_size); else ret = append_extra_args_ascii(&new_data, &new_data_size); - if (ret < 0) + if (ret < 0) { + if (new_data) /* this can't happen, but covscan believes */ + free(new_data); return -1; + } if (new_data_size) { ret = add_new_data(data, data_size, new_data, new_data_size); free(new_data); + new_data = NULL; if (ret < 0) return -1; new_data_size = 0; } + if (new_data) /* once again, this can't happen, but covscan believes */ + free(new_data); return 0; } -- 1.9.3