On 04/20/2017 08:21 AM, Martin Kletzander wrote: > We are currently parsing only rx_max_coalesced_frames because that's > the only value that makes sense for us. The tun device just added > support for this one and the others are only supported by hardware > devices which we don't need to worry about as the only way we'd pass > those to the domain is using <hostdev/> or <interface type='hostdev'/>. > And in those cases the guest can modify the settings itself. > > Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> > --- > docs/formatdomain.html.in | 24 ++++ > docs/schemas/domaincommon.rng | 131 +++++++++++++++++++++ > src/conf/domain_conf.c | 80 +++++++++++++ > src/conf/domain_conf.h | 2 + > src/qemu/qemu_domain.c | 31 +++++ > .../qemuxml2argvdata/qemuxml2argv-net-coalesce.xml | 68 +++++++++++ > .../qemuxml2xmlout-net-coalesce.xml | 71 +++++++++++ > tests/qemuxml2xmltest.c | 1 + > 8 files changed, 408 insertions(+) > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-coalesce.xml > create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-net-coalesce.xml > Coverity found a resource leak... > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index 705deb39a1bf..cbeebdc56880 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -6772,6 +6772,77 @@ virDomainNetIPInfoParseXML(const char *source, > return ret; > } > > + > +static virNetDevCoalescePtr > +virDomainNetDefCoalesceParseXML(xmlNodePtr node, > + xmlXPathContextPtr ctxt) > +{ > + virNetDevCoalescePtr ret = NULL; > + xmlNodePtr save = NULL; > + char *str = NULL; > + unsigned long long tmp = 0; > + > + save = ctxt->node; > + ctxt->node = node; > + > + str = virXPathString("string(./rx/frames/@max)", ctxt); > + if (!str) > + goto cleanup; > + > + if (!ret && VIR_ALLOC(ret) < 0) > + goto cleanup; Right here - str isn't free'd in cleanup (or error), but could be... > + > + if (virStrToLong_ullp(str, NULL, 10, &tmp) < 0) { > + virReportError(VIR_ERR_XML_DETAIL, > + _("cannot parse value '%s' for coalesce parameter"), > + str); > + VIR_FREE(str); > + goto error; > + } > + VIR_FREE(str); > + > + if (tmp > UINT32_MAX) { > + virReportError(VIR_ERR_OVERFLOW, > + _("value '%llu' is too big for coalesce " > + "parameter, maximum is '%lu'"), > + tmp, (unsigned long) UINT32_MAX); > + goto error; > + } > + ret->rx_max_coalesced_frames = tmp; > + > + cleanup: > + ctxt->node = save; > + return ret; > + > + error: > + VIR_FREE(ret); > + goto cleanup; > +} > + ... -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list