]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fs/squashfs: simplify sqfs_read()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 11 Apr 2022 20:54:44 +0000 (22:54 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 19 Apr 2022 18:51:11 +0000 (14:51 -0400)
* 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 <heinrich.schuchardt@canonical.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
fs/squashfs/sqfs.c

index 5d9c52af80baeb4168cd2b169d8a8b3b27214ace..b07c41e91170743ffd2a55033b91519c14dcc3a6 100644 (file)
@@ -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);