[lvc-project] [PATCH v2] btrfs: qgroup: don't use extent changeset when not needed

David Sterba dsterba at suse.cz
Thu Aug 29 00:56:32 MSK 2024


On Wed, Aug 28, 2024 at 07:14:11PM +0300, Fedor Pchelkin wrote:
> The local extent changeset is passed to clear_record_extent_bits() where
> it may have some additional memory dynamically allocated for ulist. When
> qgroup is disabled, the memory is leaked because in this case the
> changeset is not released upon __btrfs_qgroup_release_data() return.
> 
> Since the recorded contents of the changeset are not used thereafter, just
> don't pass it.
> 
> Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
> 
> Reported-by: syzbot+81670362c283f3dd889c at syzkaller.appspotmail.com
> Closes: https://lore.kernel.org/lkml/000000000000aa8c0c060ade165e@google.com
> Fixes: af0e2aab3b70 ("btrfs: qgroup: flush reservations during quota disable")
> Cc: stable at vger.kernel.org # 6.10+
> Signed-off-by: Fedor Pchelkin <pchelkin at ispras.ru>
> ---
> v2: rework the fix as Qu Wenruo suggested - just don't pass unneeded
>     changeset. Update the commit title and description accordingly.

Thanks, added to for-next.



More information about the lvc-project mailing list