]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
m68k: sun3: add check for __pgd_alloc()
authorHaoxiang Li <haoxiang_li2024@163.com>
Mon, 17 Feb 2025 16:00:17 +0000 (00:00 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 6 Mar 2025 05:36:12 +0000 (21:36 -0800)
Add check for the return value of __pgd_alloc() in pgd_alloc() to prevent
null pointer dereference.

Link: https://lkml.kernel.org/r/20250217160017.2375536-1-haoxiang_li2024@163.com
Fixes: a9b3c355c2e6 ("asm-generic: pgalloc: provide generic __pgd_{alloc,free}")
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Sam Creasey <sammy@sammy.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/m68k/include/asm/sun3_pgalloc.h

index f1ae4ed890db511b045e6798ed24c83f727ca280..80afc3a187249f9b490819ee9ac55819b4f46005 100644 (file)
@@ -44,8 +44,10 @@ static inline pgd_t * pgd_alloc(struct mm_struct *mm)
        pgd_t *new_pgd;
 
        new_pgd = __pgd_alloc(mm, 0);
-       memcpy(new_pgd, swapper_pg_dir, PAGE_SIZE);
-       memset(new_pgd, 0, (PAGE_OFFSET >> PGDIR_SHIFT));
+       if (likely(new_pgd != NULL)) {
+               memcpy(new_pgd, swapper_pg_dir, PAGE_SIZE);
+               memset(new_pgd, 0, (PAGE_OFFSET >> PGDIR_SHIFT));
+       }
        return new_pgd;
 }