diff options
-rw-r--r-- | host/arch/x86/lib/crossystem_arch.c | 8 |
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) |