Re: [PATCH] mm: kmemleak: Ensure that the task stack is not freed during scanning

From: Catalin Marinas
Date: Thu Oct 20 2016 - 06:02:50 EST


Hi Andrew,

On Wed, Oct 19, 2016 at 11:33:27AM -0700, Andrew Morton wrote:
> On Wed, 12 Oct 2016 10:57:03 +0100 Catalin Marinas <catalin.marinas@xxxxxxx> wrote:
> > Commit 68f24b08ee89 ("sched/core: Free the stack early if
> > CONFIG_THREAD_INFO_IN_TASK") may cause the task->stack to be freed
> > during kmemleak_scan() execution, leading to either a NULL pointer
> > fault (if task->stack is NULL) or kmemleak accessing already freed
> > memory. This patch uses the new try_get_task_stack() API to ensure that
> > the task stack is not freed during kmemleak stack scanning.
> >
> > Fixes: 68f24b08ee89 ("sched/core: Free the stack early if CONFIG_THREAD_INFO_IN_TASK")
> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> > Cc: CAI Qian <caiqian@xxxxxxxxxx>
> > Reported-by: CAI Qian <caiqian@xxxxxxxxxx>
> > Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
>
> I'll add
>
> Cc: <stable@xxxxxxxxxxxxxxx> [4.8.x]

This should be 4.9.x. The commit that introduces try_get_task_stack()
was merged in 4.9-rc1: c6c314a613cd ("sched/core: Add
try_get_task_stack() and put_task_stack()").

--
Catalin