RE: + kvm-ia64-dereference-of-null-pointer-in-set_pal_result.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Avi Kivity wrote:
> On 01/13/2010 11:32 AM, Andrew Morton wrote:
>> On Wed, 13 Jan 2010 11:22:39 +0200 Avi Kivity<avi@xxxxxxxxxx>  wrote:
>> 
>> 
>>> On 01/13/2010 12:11 AM, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
>>> 
>>>> Subject: kvm/ia64: dereference of NULL pointer in set_pal_result()
>>>> From: Roel Kluin<roel.kluin@xxxxxxxxx>
>>>> 
>>>> 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;
>> 
> 
> I see.  I think it's worthwhile to look deeper rather than converting
> things mechanically.  After all, the code may have actually worked
> before the patch.

Originally, we want to dynamically allocate the exit_data, so needs the check. But now, it is allocated statically, so the check is unnecessary.  
Xiantao


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux