On 07/30/2013 09:05 AM, Peter Krempa wrote: <...snip...> > +/* this allows to add a responder that is able to check > + * a (shallow) structure of arguments for a command */ > +int > +qemuMonitorTestAddItemParams(qemuMonitorTestPtr test, > + const char *cmdname, > + const char *response, > + ...) > +{ > + struct qemuMonitorTestHandlerData *data; > + const char *argname; > + const char *argval; > + va_list args; > + > + va_start(args, response); > + Coverity complains: 668 (1) Event va_init: Initializing va_list "args". Also see events: [missing_va_end] 669 va_start(args, response); 670 (2) Event cond_true: Condition "virAlloc(&data, 32UL /* sizeof (*data) */, true /* 1 */, VIR_FROM_NONE, "qemumonitortestutils.c", <anonymous>, 671) < 0", taking true branch 671 if (VIR_ALLOC(data) < 0) (3) Event missing_va_end: va_end was not called for "args". Also see events: [va_init] 672 return -1; 673 John > + if (VIR_ALLOC(data) < 0) > + return -1; > + > + if (VIR_STRDUP(data->command_name, cmdname) < 0 || > + VIR_STRDUP(data->response, response) < 0) > + goto error; > + > + while ((argname = va_arg(args, char *))) { > + size_t i; > + if (!(argval = va_arg(args, char *))) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + "Missing argument value for argument '%s'", > + argname); > + goto error; > + } > + > + i = data->nargs; > + if (VIR_EXPAND_N(data->args, data->nargs, 1)) > + goto error; > + > + if (VIR_STRDUP(data->args[i].argname, argname) < 0 || > + VIR_STRDUP(data->args[i].argval, argval) < 0) > + goto error; > + } > + > + va_end(args); > + > + return qemuMonitorTestAddHandler(test, > + qemuMonitorTestProcessCommandWithArgs, > + data, qemuMonitorTestHandlerDataFree); > + > +error: > + va_end(args); > + qemuMonitorTestHandlerDataFree(data); > + return -1; > +} > + > + -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list