Hi Heinrich, [email protected] wrote on Mon, 11 Apr 2022 22:54:44 +0200:
> * Don't check argument of free(). Free does this itself. > * Reduce scope of data_buffer. Remove duplicate free(). > * Avoid superfluous NULL assignment. > > Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Miquel Raynal <[email protected]> > --- > fs/squashfs/sqfs.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c > index 5d9c52af80..b07c41e911 100644 > --- a/fs/squashfs/sqfs.c > +++ b/fs/squashfs/sqfs.c > @@ -1310,7 +1310,7 @@ static int sqfs_get_lregfile_info(struct > squashfs_lreg_inode *lreg, > int sqfs_read(const char *filename, void *buf, loff_t offset, loff_t len, > loff_t *actread) > { > - char *dir = NULL, *fragment_block, *datablock = NULL, *data_buffer = > NULL; > + char *dir = NULL, *fragment_block, *datablock = NULL; > char *fragment = NULL, *file = NULL, *resolved, *data; > u64 start, n_blks, table_size, data_offset, table_offset, sparse_size; > int ret, j, i_number, datablk_count = 0; > @@ -1440,6 +1440,8 @@ int sqfs_read(const char *filename, void *buf, loff_t > offset, loff_t len, > } > > for (j = 0; j < datablk_count; j++) { > + char *data_buffer; > + > start = data_offset / ctxt.cur_dev->blksz; > table_size = SQFS_BLOCK_SIZE(finfo.blk_sizes[j]); > table_offset = data_offset - (start * ctxt.cur_dev->blksz); > @@ -1501,9 +1503,7 @@ int sqfs_read(const char *filename, void *buf, loff_t > offset, loff_t len, > } > > data_offset += table_size; > - if (data_buffer) > - free(data_buffer); > - data_buffer = NULL; > + free(data_buffer); > if (*actread >= len) > break; > } > @@ -1563,10 +1563,7 @@ int sqfs_read(const char *filename, void *buf, loff_t > offset, loff_t len, > > out: > free(fragment); > - if (datablk_count) { > - free(data_buffer); > - free(datablock); > - } > + free(datablock); > free(file); > free(dir); > free(finfo.blk_sizes); Thanks, Miquèl

