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