]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
nvdimm/btt: Free arena sub-allocations on discover_arenas() error path
authorAbdun Nihaal <nihaal@cse.iitm.ac.in>
Tue, 19 May 2026 05:50:12 +0000 (11:20 +0530)
committerAlison Schofield <alison.schofield@intel.com>
Mon, 1 Jun 2026 23:43:53 +0000 (16:43 -0700)
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: 5212e11fde4d ("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>
drivers/nvdimm/btt.c

index fdcb080a4314f1349aea4922eaefb83a6cfc39dd..e0b6a85a8124001cc7638ccb7cd080712ee7326b 100644 (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;