Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: free mapping node on duplicate reloc root insert __add_reloc_root() allocates a mapping_node before inserting it into rc->reloc_root_tree. If rb_simple_insert() finds an existing entry, it returns the existing rb_node and leaves the newly allocated node unlinked. The error path then returns -EEXIST without freeing the new node. Since the node was never inserted into reloc_root_tree, the later cleanup in put_reloc_control() cannot find it either. Free the newly allocated node before returning -EEXIST. The callers currently assert that -EEXIST should not happen, so this is a defensive cleanup for an unexpected duplicate insert path. If the path is ever reached, the local allocation should still be released.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < 29d9746812d8b7c37d594f484e994fd552c3ec33affected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < b7c5b8e1d5f0779dfbabc3068b7ac0f12e53b3a8affected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < 92bedc0455552b42ada1a1f42b0e3a8593cdfcccaffected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < 14a8be9428435ee17f17fae7991215c246b7fd43affected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < 797dc567146c7e3c4f8d9680e4fbc76e0a6d9151affected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < ae0629ff9ccb836416ada129f4edc7efea6eaaadaffected57a304cfd43b2b4a5b44b8f5dc026abb34183068 to < 6a8269b6459ed870a8156c106a0f597383907872affected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/29d9746812d8b7c37d594f484e994fd552c3ec33 ↗
- https://git.kernel.org/stable/c/b7c5b8e1d5f0779dfbabc3068b7ac0f12e53b3a8 ↗
- https://git.kernel.org/stable/c/92bedc0455552b42ada1a1f42b0e3a8593cdfccc ↗
- https://git.kernel.org/stable/c/14a8be9428435ee17f17fae7991215c246b7fd43 ↗
- https://git.kernel.org/stable/c/797dc567146c7e3c4f8d9680e4fbc76e0a6d9151 ↗
- https://git.kernel.org/stable/c/ae0629ff9ccb836416ada129f4edc7efea6eaaad ↗
- https://git.kernel.org/stable/c/6a8269b6459ed870a8156c106a0f597383907872 ↗