> -----Original Message----- > From: Kangjie Lu <[email protected]> > Sent: Wednesday, March 13, 2019 10:47 PM > To: [email protected] > Cc: [email protected]; KY Srinivasan <[email protected]>; Haiyang Zhang > <[email protected]>; Stephen Hemminger > <[email protected]>; Sasha Levin <[email protected]>; Thomas > Gleixner <[email protected]>; Ingo Molnar <[email protected]>; Borislav > Petkov <[email protected]>; H. Peter Anvin <[email protected]>; [email protected]; > [email protected]; [email protected] > Subject: [PATCH] hyperv: a potential NULL pointer dereference > > In case alloc_page, the fix returns -ENOMEM to avoid the potential > NULL pointer dereference. > Thanks. > Signed-off-by: Kangjie Lu <[email protected]> Signed-off-by: K. Y. Srinivasan <[email protected]> > --- > 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.17.1

