Re: [PATCH] ntfs3: Fix attr_punch_hole() null pointer derenference

From: SeongJae Park
Date: Tue Jan 17 2023 - 17:09:25 EST


Hello,

On Mon, 15 Aug 2022 14:07:12 +0300 Alon Zahavi <zahavi.alon@xxxxxxxxx> wrote:

> From: Alon Zahavi <zahavi.alon@xxxxxxxxx>
>
> The bug occours due to a misuse of `attr` variable instead of `attr_b`.
> `attr` is being initialized as NULL, then being derenfernced
> as `attr->res.data_size`.
>
> This bug causes a crash of the ntfs3 driver itself,
> If compiled directly to the kernel, it crashes the whole system.
>
> Signed-off-by: Alon Zahavi <zahavi.alon@xxxxxxxxx>
> Co-developed-by: Tal Lossos <tallossos@xxxxxxxxx>
> Signed-off-by: Tal Lossos <tallossos@xxxxxxxxx>

This patch has now merged in mainline as
6d5c9e79b726cc473d40e9cb60976dbe8e669624. stable@, could you please merge this
in stable kernels?

Fixes: be71b5cba2e64 ("fs/ntfs3: Add attrib operations") # 5.14


Thanks,
SJ

> ---
> fs/ntfs3/attrib.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c
> index e8c00dda42ad..4e74bc8f01ed 100644
> --- a/fs/ntfs3/attrib.c
> +++ b/fs/ntfs3/attrib.c
> @@ -1949,7 +1949,7 @@ int attr_punch_hole(struct ntfs_inode *ni, u64 vbo, u64 bytes, u32 *frame_size)
> return -ENOENT;
>
> if (!attr_b->non_res) {
> - u32 data_size = le32_to_cpu(attr->res.data_size);
> + u32 data_size = le32_to_cpu(attr_b->res.data_size);
> u32 from, to;
>
> if (vbo > data_size)
> --
> 2.25.1
>
>