Re: [PATCH] KVM: dereference of NULL pointer in set_pal_result()

Gabor Gombas <[email protected]>
Newsgroups org.kernel.vger.kvm-ia64,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Fri, Jan 08, 2010 at 07:28:57AM +0800, Zhang, Xiantao wrote:

> For the check "(p && p->exit_reason = EXIT_REASON_PAL_CALL", if p is NULL, the reference about "p->exit_reason = EXIT_REASON_PAL_CALL" won't be checked any more, so no issue here. 

> > diff --git a/arch/ia64/kvm/kvm_fw.c b/arch/ia64/kvm/kvm_fw.c
> > index e4b8231..d28494f 100644
> > --- a/arch/ia64/kvm/kvm_fw.c
> > +++ b/arch/ia64/kvm/kvm_fw.c
> > @@ -75,9 +75,11 @@ static void set_pal_result(struct kvm_vcpu *vcpu,
> >  	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);

IMHO it's not the test but the INIT_PAL_STATUS_UNIMPLEMENTED() that does
the unwanted dereferencing, and that's fixed by the patch.

Gabor

-- 
     ---------------------------------------------------------
     MTA SZTAKI Computer and Automation Research Institute
                Hungarian Academy of Sciences
     ---------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.