Re: [PATCH] mm, vmstat: Fix NULL pointer dereference during pagetypeinfo print

From: Michal Hocko
Date: Fri May 19 2017 - 10:49:03 EST


On Fri 19-05-17 22:39:36, Firo Yang wrote:
> During showing the pagetypeinfo, we forgot to save the found page
> and dereference a invalid page address from the stack.
>
> To fix it, save and reference the page address returned by
> pfn_to_online_page().

Thanks for taking catching that and your fix. I have already posted a fix
http://lkml.kernel.org/r/20170519072225.GA13041@xxxxxxxxxxxxxx earlier
today. Sorry about troubles

> Signed-off-by: Firo Yang <firogm@xxxxxxxxx>
> ---
> mm/vmstat.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index c432e58..6dae6b2 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1223,7 +1223,8 @@ static void pagetypeinfo_showblockcount_print(struct seq_file *m,
> for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) {
> struct page *page;
>
> - if (!pfn_to_online_page(pfn))
> + page = pfn_to_online_page(pfn);
> + if (!page)
> continue;
>
> /* Watch for unexpected holes punched in the memmap */
> --
> 2.9.4
>

--
Michal Hocko
SUSE Labs