Index: xen_internal.c =================================================================== RCS file: /data/cvs/libvirt/src/xen_internal.c,v retrieving revision 1.87 diff -u -p -r1.87 xen_internal.c --- xen_internal.c 19 Jul 2007 15:37:54 -0000 1.87 +++ xen_internal.c 20 Jul 2007 10:00:22 -0000 @@ -1180,6 +1180,7 @@ xenHypervisorSetSchedulerParameters(virD int i; unsigned int val; xenUnifiedPrivatePtr priv; + char buf[256]; if ((domain == NULL) || (domain->conn == NULL)) { virXenErrorFunc (VIR_ERR_INTERNAL_ERROR, __FUNCTION__, @@ -1244,13 +1245,13 @@ xenHypervisorSetSchedulerParameters(virD op_dom.u.getschedinfo.u.credit.cap = (uint16_t)~0U; for (i = 0; i < nparams; i++) { + memset(&buf, 0, sizeof(buf)); if (STREQ (params[i].field, str_weight) && params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) { val = params[i].value.ui; if ((val < 1) || (val > USHRT_MAX)) { - virXenErrorFunc (VIR_ERR_INVALID_ARG, __FUNCTION__, - _("Credit scheduler weight parameter (%d) is out of range (1-65535)"), - val); + snprintf(buf, sizeof(buf), _("Credit scheduler weight parameter (%d) is out of range (1-65535)"), val); + virXenErrorFunc (VIR_ERR_INVALID_ARG, __FUNCTION__, buf, val); return(-1); } op_dom.u.getschedinfo.u.credit.weight = val; @@ -1259,9 +1260,8 @@ xenHypervisorSetSchedulerParameters(virD params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) { val = params[i].value.ui; if (val > USHRT_MAX) { - virXenErrorFunc (VIR_ERR_INVALID_ARG, __FUNCTION__, - _("Credit scheduler cap parameter (%d) is out of range (0-65535)"), - val); + snprintf(buf, sizeof(buf), _("Credit scheduler cap parameter (%d) is out of range (0-65535)"), val); + virXenErrorFunc (VIR_ERR_INVALID_ARG, __FUNCTION__, buf, val); return(-1); } op_dom.u.getschedinfo.u.credit.cap = val;