Commit fe4de594 authored by Qu Wenruo's avatar Qu Wenruo Committed by David Sterba
Browse files

btrfs: add the missing error handling inside get_canonical_dev_path



Inside function get_canonical_dev_path(), we call d_path() to get the
final device path.

But d_path() can return error, and in that case the next strscpy() call
will trigger an invalid memory access.

Add back the missing error handling for d_path().

Reported-by: default avatarBoris Burkov <boris@bur.io>
Fixes: 7e06de7c ("btrfs: canonicalize the device path before adding it")
Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 0ee4736c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -797,6 +797,10 @@ static int get_canonical_dev_path(const char *dev_path, char *canonical)
	if (ret)
		goto out;
	resolved_path = d_path(&path, path_buf, PATH_MAX);
	if (IS_ERR(resolved_path)) {
		ret = PTR_ERR(resolved_path);
		goto out;
	}
	ret = strscpy(canonical, resolved_path, PATH_MAX);
out:
	kfree(path_buf);