diff mbox series

[1/1] fs/squashfs: NULL dereference in sqfs_closedir()

Message ID 20210201022848.73381-1-xypron.glpk@gmx.de
State Accepted
Commit 220fa478fb1a84e51235b92506ff5d48415f0a8e
Delegated to: Tom Rini
Headers show
Series [1/1] fs/squashfs: NULL dereference in sqfs_closedir() | expand

Commit Message

Heinrich Schuchardt Feb. 1, 2021, 2:28 a.m. UTC
sqfs_opendir() called in sqfs_size(), sqfs_read(), sqfs_exists() may fail
leading to sqfs_closedir(NULL) being called. Do not dereference NULL.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 fs/squashfs/sqfs.c | 3 +++
 1 file changed, 3 insertions(+)

--
2.29.2

Comments

Tom Rini Feb. 25, 2021, 1:24 p.m. UTC | #1
On Mon, Feb 01, 2021 at 03:28:48AM +0100, Heinrich Schuchardt wrote:

> sqfs_opendir() called in sqfs_size(), sqfs_read(), sqfs_exists() may fail
> leading to sqfs_closedir(NULL) being called. Do not dereference NULL.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c
index dca13bd1f1..29805c3c6f 100644
--- a/fs/squashfs/sqfs.c
+++ b/fs/squashfs/sqfs.c
@@ -1716,6 +1716,9 @@  void sqfs_closedir(struct fs_dir_stream *dirs)
 {
 	struct squashfs_dir_stream *sqfs_dirs;

+	if (!dirs)
+		return;
+
 	sqfs_dirs = (struct squashfs_dir_stream *)dirs;
 	free(sqfs_dirs->inode_table);
 	free(sqfs_dirs->dir_table);