summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--host/arch/x86/lib/crossystem_arch.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c
index 31510647..c745e0b4 100644
--- a/host/arch/x86/lib/crossystem_arch.c
+++ b/host/arch/x86/lib/crossystem_arch.c
@@ -245,12 +245,16 @@ static uint8_t* VbGetBuffer(const char* filename, int* buffer_size)
break;
rv = fstat(fd, &fs);
- if (rv || !S_ISREG(fs.st_mode))
+ if (rv || !S_ISREG(fs.st_mode)) {
+ close(fd);
break;
+ }
f = fdopen(fd, "r");
- if (!f)
+ if (!f) {
+ close(fd);
break;
+ }
file_buffer = malloc(fs.st_size + 1);
if (!file_buffer)