s390/mm: Fix memory leak in add_marker() when kvrealloc() fails
authorMiaoqian Lin <linmq006@gmail.com>
Mon, 27 Oct 2025 15:08:38 +0000 (23:08 +0800)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 29 Oct 2025 13:17:50 +0000 (14:17 +0100)
commit07ad45e06b4039adf96882aefcb1d3299fb7c305
treeb5745a57ebc502d54cf608fd421939f720f2b090
parentb45873c3f09153d1ad9b3a7bf9e5c0b0387fd2ea
s390/mm: Fix memory leak in add_marker() when kvrealloc() fails

The function has a memory leak when kvrealloc() fails.
The function directly assigns NULL to the markers pointer, losing the
reference to the previously allocated memory. This causes kvfree() in
pt_dump_init() to free NULL instead of the leaked memory.

Fix by:
1. Using kvrealloc() uniformly for all allocations
2. Using a temporary variable to preserve the original pointer until
   allocation succeeds
3. Removing the error path that sets markers_cnt=0 to keep
   consistency between markers and markers_cnt

Found via static analysis and this is similar to commit 42378a9ca553
("bpf, verifier: Fix memory leak in array reallocation for stack state")

Fixes: d0e7915d2ad3 ("s390/mm/ptdump: Generate address marker array dynamically")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/mm/dump_pagetables.c