Medium · published September 25, 2026
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix the possible bioc_list memory leak during error
There are two possible ways to leak bioc memory on
btrfs_ordered_extent::bioc_list:
- An error occurred for btrfs_insert_one_raid_extent()
Then the function btrfs_insert_raid_extent() immediately return
without freeing any bioc in the bioc_list.
- An ordered extent hit an IO error
In that case the ordered extent will have BTRFS_ORDERED_IOERR set, and
skip the call on btrfs_insert_raid_extent() completely.
Fix the problem by:
- Introduce a new helper, btrfs_cleanup_ordered_bioc_list()
Which will remove all bioc from the bioc_list, and release the bioc.
- Call the above helper for btrfs_insert_raid_extent()
So that the cleanup helper is always called no matter what.
- Call the above helper for btrfs_finish_one_ordered()
This is called just before the final release on the ordered extent.
This was reported by Sashiko when reviewing another patch.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 6.6.130, < 6.6.158 | 6.6.158 |
| linux/linux_kernel | ≥ 6.7, < 6.12.111 | 6.12.111 |
| linux/linux_kernel | ≥ 6.13, < 6.18.53 | 6.18.53 |
| linux/linux_kernel | ≥ 6.19, < 7.2.7 | 7.2.7 |
| linux/linux_kernel | all versions | — |