Commit c847cb74 authored by Bas van Loon's avatar Bas van Loon Committed by Anas Nashif
Browse files

fs/ext2: Fix NULL dereference when fs_stat queries root.

When fs_stat() queries the root / mountpoint it should return its root
i_node but instead it tries to return the parent i_node which does not
exist. Fix this by checking if parent is set otherwise return the root
i_node.

Fixes https://github.com/zephyrproject-rtos/zephyr/issues/94000

.

Signed-off-by: default avatarBas van Loon <bas@arch-embedded.com>
(cherry picked from commit 1dcf123e)
parent cccd5048
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -596,12 +596,11 @@ static int ext2_stat(struct fs_mount_t *mountp, const char *path, struct fs_dire
	}

	uint32_t offset = args.offset;
	struct ext2_inode *parent = args.parent;
	struct ext2_file dir = {.f_inode = parent, .f_off = offset};
	struct ext2_file dir = {.f_inode = args.parent ? args.parent : args.inode, .f_off = offset};

	rc = ext2_get_direntry(&dir, entry);

	ext2_inode_drop(parent);
	ext2_inode_drop(args.parent);
	ext2_inode_drop(args.inode);
	return rc;
}