From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Morton Date: Wed, 13 Jan 2010 09:32:53 +0000 Subject: Re: + kvm-ia64-dereference-of-null-pointer-in-set_pal_result.patch Message-Id: <20100113013253.5913fc63.akpm@linux-foundation.org> List-Id: References: <4B4D90DF.7020700@redhat.com> In-Reply-To: <4B4D90DF.7020700@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ia64@vger.kernel.org On Wed, 13 Jan 2010 11:22:39 +0200 Avi Kivity wrote: > On 01/13/2010 12:11 AM, akpm@linux-foundation.org wrote: > > Subject: kvm/ia64: dereference of NULL pointer in set_pal_result() > > From: Roel Kluin > > > > Do not dereference a NULL pointer > > > > diff -puN arch/ia64/kvm/kvm_fw.c~kvm-ia64-dereference-of-null-pointer-in-set_pal_result arch/ia64/kvm/kvm_fw.c > > --- a/arch/ia64/kvm/kvm_fw.c~kvm-ia64-dereference-of-null-pointer-in-set_pal_result > > +++ a/arch/ia64/kvm/kvm_fw.c > > @@ -75,9 +75,11 @@ static void set_pal_result(struct kvm_vc > > struct exit_ctl_data *p; > > > > p = kvm_get_exit_data(vcpu); > > - if (p&& p->exit_reason = EXIT_REASON_PAL_CALL) { > > + if (!p) > > + return; > > + if (p->exit_reason = EXIT_REASON_PAL_CALL) { > > p->u.pal_data.ret = result; > > - return ; > > + return; > > } > > INIT_PAL_STATUS_UNIMPLEMENTED(p->u.pal_data.ret); > > } > > > > > kvm_get_exit_data() cannot return a NULL pointer. In that case set_pal_result() doesn't need to test for that. Roel looks for code along the lines of if (p) ... *p; > Where did this come from? I got it off linux-kernel. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Morton Subject: Re: + kvm-ia64-dereference-of-null-pointer-in-set_pal_result.patch added to -mm tree Date: Wed, 13 Jan 2010 01:32:53 -0800 Message-ID: <20100113013253.5913fc63.akpm@linux-foundation.org> References: <201001122211.o0CMBSxg030700@imap1.linux-foundation.org> <4B4D90DF.7020700@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: KVM list , roel.kluin@gmail.com, mtosatti@redhat.com, tony.luck@intel.com, xiantao.zhang@intel.com, "kvm-ia64@vger.kernel.org" To: Avi Kivity Return-path: Received: from smtp1.linux-foundation.org ([140.211.169.13]:60510 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755192Ab0AMJd3 (ORCPT ); Wed, 13 Jan 2010 04:33:29 -0500 In-Reply-To: <4B4D90DF.7020700@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, 13 Jan 2010 11:22:39 +0200 Avi Kivity wrote: > On 01/13/2010 12:11 AM, akpm@linux-foundation.org wrote: > > Subject: kvm/ia64: dereference of NULL pointer in set_pal_result() > > From: Roel Kluin > > > > Do not dereference a NULL pointer > > > > diff -puN arch/ia64/kvm/kvm_fw.c~kvm-ia64-dereference-of-null-pointer-in-set_pal_result arch/ia64/kvm/kvm_fw.c > > --- a/arch/ia64/kvm/kvm_fw.c~kvm-ia64-dereference-of-null-pointer-in-set_pal_result > > +++ a/arch/ia64/kvm/kvm_fw.c > > @@ -75,9 +75,11 @@ static void set_pal_result(struct kvm_vc > > struct exit_ctl_data *p; > > > > p = kvm_get_exit_data(vcpu); > > - if (p&& p->exit_reason == EXIT_REASON_PAL_CALL) { > > + if (!p) > > + return; > > + if (p->exit_reason == EXIT_REASON_PAL_CALL) { > > p->u.pal_data.ret = result; > > - return ; > > + return; > > } > > INIT_PAL_STATUS_UNIMPLEMENTED(p->u.pal_data.ret); > > } > > > > > kvm_get_exit_data() cannot return a NULL pointer. In that case set_pal_result() doesn't need to test for that. Roel looks for code along the lines of if (p) ... *p; > Where did this come from? I got it off linux-kernel.