Re: [PATCH] btrfs: allocate btrfs_ioctl_defrag_range_args on stack

From: David Sterba
Date: Wed Mar 20 2024 - 12:22:38 EST


On Wed, Mar 20, 2024 at 11:31:56AM +0000, Maximilian Heyne wrote:
> From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
>
> commit c853a5783ebe123847886d432354931874367292 upstream.
>
> Instead of using kmalloc() to allocate btrfs_ioctl_defrag_range_args,
> allocate btrfs_ioctl_defrag_range_args on stack, the size is reasonably
> small and ioctls are called in process context.
>
> sizeof(btrfs_ioctl_defrag_range_args) = 48
>
> Reviewed-by: Anand Jain <anand.jain@xxxxxxxxxx>
> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
> Reviewed-by: David Sterba <dsterba@xxxxxxxx>
> Signed-off-by: David Sterba <dsterba@xxxxxxxx>
> CC: stable@xxxxxxxxxxxxxxx # 4.14+
> [ This patch is needed to fix a memory leak of "range" that was
> introduced when commit 173431b274a9 ("btrfs: defrag: reject unknown
> flags of btrfs_ioctl_defrag_range_args") was backported to kernels
> lacking this patch. Now with these two patches applied in reverse order,
> range->flags needed to change back to range.flags.
> This bug was discovered and resolved using Coverity Static Analysis
> Security Testing (SAST) by Synopsys, Inc.]
> Signed-off-by: Maximilian Heyne <mheyne@xxxxxxxxx>

Acked-by: David Sterba <dsterba@xxxxxxxx>

for backport to stable as a prerequisite for 173431b274a9a5 ("btrfs:
defrag: reject unknown flags of btrfs_ioctl_defrag_range_args").