data_buffer was allocated in a loop and freed only once.

Signed-off-by: Richard Genoud <richard.gen...@posteo.net>
---
 fs/squashfs/sqfs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c
index a9e803cbac2..cfea313e34b 100644
--- a/fs/squashfs/sqfs.c
+++ b/fs/squashfs/sqfs.c
@@ -1459,6 +1459,8 @@ int sqfs_read(const char *filename, void *buf, loff_t 
offset, loff_t len,
                }
 
                data_offset += table_size;
+               free(data_buffer);
+               data_buffer = NULL;
        }
 
        free(finfo.blk_sizes);

Reply via email to