mm/damon/core: initialize damon_target->list in damon_new_target()
authorSeongJae Park <sj@kernel.org>
Sun, 2 Oct 2022 19:31:30 +0000 (19:31 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 12 Oct 2022 02:05:44 +0000 (19:05 -0700)
'struct damon_target' creation function, 'damon_new_target()' is not
initializing its '->list' field, unlike other DAMON structs creator
functions such as 'damon_new_region()'.  Normal users of
'damon_new_target()' initializes the field by adding the target to DAMON
context's targets list, but some code could access the uninitialized
field.

This commit avoids the case by initializing the field in
'damon_new_target()'.

Link: https://lkml.kernel.org/r/20221002193130.8227-1-sj@kernel.org
Fixes: f23b8eee1871 ("mm/damon/core: implement region-based sampling")
Signed-off-by: SeongJae Park <sj@kernel.org>
Reported-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Tested-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/core.c

index 7d25dc5..4cbe786 100644 (file)
@@ -313,6 +313,7 @@ struct damon_target *damon_new_target(void)
        t->pid = NULL;
        t->nr_regions = 0;
        INIT_LIST_HEAD(&t->regions_list);
+       INIT_LIST_HEAD(&t->list);
 
        return t;
 }