lkml.org 
[lkml]   [2019]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.0 57/67] x86/hyperv: Prevent potential NULL pointer dereference
    Date
    From: Kangjie Lu <kjlu@umn.edu>

    [ Upstream commit 534c89c22e26b183d838294f0937ee092c82ad3a ]

    The page allocation in hv_cpu_init() can fail, but the code does not
    have a check for that.

    Add a check and return -ENOMEM when the allocation fails.

    [ tglx: Massaged changelog ]

    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
    Acked-by: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: pakki001@umn.edu
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: linux-hyperv@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190314054651.1315-1-kjlu@umn.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/hyperv/hv_init.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
    index 7abb09e2eeb8..dfdb4ce1ae9c 100644
    --- a/arch/x86/hyperv/hv_init.c
    +++ b/arch/x86/hyperv/hv_init.c
    @@ -102,9 +102,13 @@ static int hv_cpu_init(unsigned int cpu)
    u64 msr_vp_index;
    struct hv_vp_assist_page **hvp = &hv_vp_assist_page[smp_processor_id()];
    void **input_arg;
    + struct page *pg;

    input_arg = (void **)this_cpu_ptr(hyperv_pcpu_input_arg);
    - *input_arg = page_address(alloc_page(GFP_KERNEL));
    + pg = alloc_page(GFP_KERNEL);
    + if (unlikely(!pg))
    + return -ENOMEM;
    + *input_arg = page_address(pg);

    hv_get_vp_index(msr_vp_index);

    --
    2.19.1
    \
     
     \ /
      Last update: 2019-03-30 02:09    [W:4.315 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site