nvdimm/btt: Free arena sub-allocations on discover_arenas() error path

Memory allocated by btt_freelist_init(), btt_rtt_init(), and
btt_maplocks_init() is not freed on some discover_arenas() error
paths. This leaks memory when arena discovery fails.

Add the missing kfree() calls to release the allocations before
returning an error.

[ as: commit message and log edits ]

Fixes: 5212e11fde ("nd_btt: atomic sector updates")
Cc: stable@vger.kernel.org
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Link: https://patch.msgid.link/20260519-nvdimmleaks-v1-1-592300fb7a43@cse.iitm.ac.in
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
This commit is contained in:
Abdun Nihaal
2026-06-01 16:43:53 -07:00
committed by Alison Schofield
parent 8d4b989d9c
commit 13fe4cd9dd
+3
View File
@@ -919,6 +919,9 @@ static int discover_arenas(struct btt *btt)
return ret;
out:
kfree(arena->freelist);
kfree(arena->rtt);
kfree(arena->map_locks);
kfree(arena);
free_arenas(btt);
return ret;