• zhaoyang's avatar
    ARM: 8901/1: add a criteria for pfn_valid of arm · 080ca754
    zhaoyang authored
    [ Upstream commit 5b3efa4f ]
    
    pfn_valid can be wrong when parsing a invalid pfn whose phys address
    exceeds BITS_PER_LONG as the MSB will be trimed when shifted.
    
    The issue originally arise from bellowing call stack, which corresponding to
    an access of the /proc/kpageflags from userspace with a invalid pfn parameter
    and leads to kernel panic.
    
    [46886.723249] c7 [<c031ff98>] (stable_page_flags) from [<c03203f8>]
    [46886.723264] c7 [<c0320368>] (kpageflags_read) from [<c0312030>]
    [46886.723280] c7 [<c0311fb0>] (proc_reg_read) from [<c02a6e6c>]
    [46886.723290] c7 [<c02a6e24>] (__vfs_read) from [<c02a7018>]
    [46886.723301] c7 [<c02a6f74>] (vfs_read) from [<c02a778c>]
    [46886.723315] c7 [<c02a770c>] (SyS_pread64) from [<c0108620>]
    (ret_fast_syscall+0x0/0x28)
    Signed-off-by: default avatarZhaoyang Huang <zhaoyang.huang@unisoc.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    080ca754
init.c 19.5 KB