Re: [libvirt-php PATCH 03/29] add missing arginfo

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

 



Le 14/04/2016 18:30, Michal Privoznik a écrit :
> On 13.04.2016 18:13, Neal Gompa wrote:
>> From: Remi Collet <fedora@xxxxxxxxxxxxxxxxx>
>>
>> ---
>>  src/libvirt-php.c | 715 +++++++++++++++++++++++++++++++++++++++++-------------
>>  1 file changed, 553 insertions(+), 162 deletions(-)
>>
>> diff --git a/src/libvirt-php.c b/src/libvirt-php.c
>> index 1af6077..3f06edc 100644
>> --- a/src/libvirt-php.c
>> +++ b/src/libvirt-php.c
> 
> 
>> @@ -5984,7 +6371,7 @@ PHP_FUNCTION(libvirt_domain_memory_peek)
>>      zval *zdomain;
>>      int retval;
>>      long flags=0;
>> -    long long start;
>> +    long start;
> 
> This is spurious for two reasons:
> 1) this patch aims at something different. So this change does not
> belong here.
> 2) The @start variable is passed to virDomainMemoryPeek(). It expects
> unsigned long long. So this change does not belong here.

I confirm this patch is correct and needed.

    GET_DOMAIN_FROM_ARGS("rlll",&zdomain,&start,&size,&flags);

zend_parse_parameters expect a (long *) for "l" option

Casting a (long long *) to a (long *) is terrible, mash the stack, can
raise segfault, and very bad thing on big endian

    retval=virDomainMemoryPeek(domain->domain,start,size,buff,flags);

Casting a (long) to a (long long) is perfectly OK.

So current version is broken

-    zend_ulong64 start;
+    zend_long start;

And if you want to manage the negative value, just add a test

	if (start<0) RETURN_FALSE;

Remi.



--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]