Re: [PATCH v2] s390/mm: Fix memory leak in add_marker() when kvrealloc fails
From: Heiko Carstens
Date: Mon Oct 27 2025 - 11:33:25 EST
On Mon, Oct 27, 2025 at 11:08:38PM +0800, Miaoqian Lin wrote:
> 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@xxxxxxxxxxxxxxx
> Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx>
> ---
> changes in v2:
> - update the fixing logic to prevent memory leak in v1
> v1 link: https://lore.kernel.org/all/20251026091351.36275-1-linmq006@xxxxxxxxx/
> ---
> arch/s390/mm/dump_pagetables.c | 22 +++++++++-------------
> 1 file changed, 9 insertions(+), 13 deletions(-)
Applied, thanks!