[Libvir] [PATCH] Fix string handling in virDomain{Get, Set}SchedulerParameters

Richard W.M. Jones rjones at redhat.com
Fri Jun 22 09:53:22 UTC 2007


Daniel Veillard wrote:
> On Fri, Jun 22, 2007 at 10:30:37AM +0100, Richard W.M. Jones wrote:
>> This small patch fixes some bugs in the handling of the field string in 
>> virDomainGetSchedulerParameters and makes a similar pre-emptive fix to 
>> virDomainSetSchedulerParameters.
>>
>> Also, please don't use !strcmp(a,b), because it confuses me.  Better is 
>> to write strcmp(a,b) == 0 to mean "strings match" and strcmp(a,b) != 0 
>> to mean "strings don't match".
> 
>   yeah the strncmp use is vrong, it should be fixed. But I dislike the
> change from strncpy to strcpy. I agree that affecting local variables
> with fixed strings is not nice, but as we try to chase strcpy call out
> of the code those will show up, le'ts use
>     strncpy(..., "weight", 6)
> instead. Okay ?

I don't understand ... This was the original problem, namely that the 
field was being initialised to the string followed by garbage (without a 
terminating '\0'):

(gdb) print params[1]
$5 = {
   field = 
"cap\205�\177\000\000�pԪ�*\000\000\000\000\000\000\000\000\000\000\003ˠ.4\000\000\000\001", 
'\0' <repeats 23 times>, 
"`\231\024/4\000\000\000\200Q�\205�\177\000\000�F@\000\000\000\000", 
type = 2, value = {i = 0, ui = 0,
     l = 140733193388032, ul = 140733193388032, d = 
6.9531436082559078e-310,
     b = 0 '\0'}}

On the other hand if you meant strncpy (field, "weight", 
VIR_DOMAIN_SCHED_FIELD_LENGTH), followed by 
field[VIR_DOMAIN_SCHED_FIELD_LENGTH-1] = '\0' then I'd agree.

Rich.

-- 
Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom.  Registered in
England and Wales under Company Registration No. 03798903
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20070622/ea4fe1a6/attachment-0001.bin>


More information about the libvir-list mailing list