[PATCH] tpmevlogdump: fix leak of fd on error return paths, voidify close returns
Colin King
colin.king at canonical.com
Mon Jul 6 18:14:20 UTC 2020
From: Colin Ian King <colin.king at canonical.com>
Ensure that fd is not leaked on error returns paths, close these before
returning. Make minor closedir re-ordering change at end of function
to save one closedir call. Explicitly void-ify the error returns from
close and closedir calls.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/tpm/tpmevlogdump/tpmevlogdump.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/tpm/tpmevlogdump/tpmevlogdump.c b/src/tpm/tpmevlogdump/tpmevlogdump.c
index 4a6276b3..998b48eb 100644
--- a/src/tpm/tpmevlogdump/tpmevlogdump.c
+++ b/src/tpm/tpmevlogdump/tpmevlogdump.c
@@ -431,7 +431,8 @@ static int tpmevlogdump_test1(fwts_framework *fw)
tpm_logfile_found = true;
if (data == NULL) {
fwts_log_info(fw, "Cannot load the tpm event logs. Aborted.");
- closedir(dir);
+ (void)closedir(dir);
+ (void)close(fd);
return FWTS_ABORTED;
} else {
/* check if the TPM2 eventlog */
@@ -440,23 +441,23 @@ static int tpmevlogdump_test1(fwts_framework *fw)
else {
fwts_log_info(fw, "Cannot find the tpm2 event log. Aborted.");
free(data);
- closedir(dir);
+ (void)closedir(dir);
+ (void)close(fd);
return FWTS_ABORTED;
}
free(data);
}
- close(fd);
+ (void)close(fd);
}
}
} while (tpmdir);
+ (void)closedir(dir);
+
if (!tpm_logfile_found) {
fwts_log_info(fw, "Cannot find the tpm event log. Aborted.");
- closedir(dir);
return FWTS_ABORTED;
}
-
- closedir(dir);
return FWTS_OK;
}
--
2.27.0
More information about the fwts-devel
mailing list