diff options
Diffstat (limited to 'fs/squashfs/sqfs.c')
| -rw-r--r-- | fs/squashfs/sqfs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c index 2dcdd60f683..4d3d83b7587 100644 --- a/fs/squashfs/sqfs.c +++ b/fs/squashfs/sqfs.c @@ -1584,8 +1584,10 @@ static int sqfs_read_nest(const char *filename, void *buf, loff_t offset, table_offset = frag_entry.start - (start * ctxt.cur_dev->blksz); n_blks = DIV_ROUND_UP(table_size + table_offset, ctxt.cur_dev->blksz); - if (__builtin_mul_overflow(n_blks, ctxt.cur_dev->blksz, &buf_size)) - return -EINVAL; + if (__builtin_mul_overflow(n_blks, ctxt.cur_dev->blksz, &buf_size)) { + ret = -EINVAL; + goto out; + } fragment = malloc_cache_aligned(buf_size); |
