iolog: Don't leak memory if fread fails in iolog_file_inflate
authorErwan Velu <erwan.velu@enovance.com>
Thu, 19 Feb 2015 12:04:08 +0000 (13:04 +0100)
committerErwan Velu <erwan.velu@enovance.com>
Thu, 19 Feb 2015 12:04:47 +0000 (13:04 +0100)
If fread fails in iolog_file_inflate(), the current code was closing the
file descriptor and return 1. But it was missing freeing the previously
malloced buffer (buf).

This patch does add a memory free of 'buf' before returning to avoid the
memory leak.

iolog.c

diff --git a/iolog.c b/iolog.c
index b867583a27bc1f11e649ab8d88936507affcee53..7448ecfcc1cfe52729c449d62a80ab85c89e909e 100644 (file)
--- a/iolog.c
+++ b/iolog.c
@@ -876,10 +876,12 @@ int iolog_file_inflate(const char *file)
        if (ret < 0) {
                perror("fread");
                fclose(f);
+                free(buf);
                return 1;
        } else if (ret != 1) {
                log_err("fio: short read on reading log\n");
                fclose(f);
+                free(buf);
                return 1;
        }