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

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



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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


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