Re: [PATCH] mm: /proc/pid/smaps_rollup: fix no vma's null-deref

From: Alexey Dobriyan
Date: Tue Oct 04 2022 - 08:57:54 EST


On Mon, Oct 03, 2022 at 06:45:31PM -0400, FirstName LastName wrote:
> From: Seth Jenkins <sethjenkins@xxxxxxxxxx>
>
> Commit 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value
> seq_file") introduced a null-deref if there are no vma's in the task in
> show_smaps_rollup.
>
> Fixes: 258f669e7e88 ("mm: /proc/pid/smaps_rollup: convert to single value seq_file")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Seth Jenkins <sethjenkins@xxxxxxxxxx>

> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -969,7 +969,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v)
> vma = vma->vm_next;
> }
>
> - show_vma_header_prefix(m, priv->mm->mmap->vm_start,
> + show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0,
> last_vma_end, 0, 0, 0, 0);
> seq_pad(m, ' ');
> seq_puts(m, "[rollup]\n");

Reviewed-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Tested-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>

Now I know how to create stable process without address space.