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

"Zhang, Xiantao" <[email protected]>
Newsgroups org.kernel.vger.kvm-ia64,org.kernel.vger.linux-kernel
Message-ID <EB8593BCECAB3D40A8248BE0B6400A38318A1443@shzsmsx502.ccr.corp.intel.com>
Gabor Gombas wrote:
> 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.
Make sense. 
Xiantao
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.