[libvirt] [PATCH V6 1/3] Add a class for file descriptor sets

Corey Bryant coreyb at linux.vnet.ibm.com
Fri Feb 15 20:48:02 UTC 2013


> +int virFdSetParseXML(virFdSetPtr fdset, const char *xPath,
> +                     xmlXPathContextPtr ctxt)
> +{
> +    xmlNodePtr *nodes = NULL;
> +    int n, i;
> +    char *key = NULL;
> +    char *val = NULL;
> +    unsigned int *fdsetnum = NULL;
> +    int ret = 0;
> +
> +    virFdSetReset(fdset);
> +
> +    if ((n = virXPathNodeSet(xPath, ctxt, &nodes)) < 0) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR,
> +                       "%s", _("failed to parse qemu file descriptor sets"));
> +        goto error;
> +    }
> +    if (n > 0) {
> +        for (i = 0 ; i < n ; i++) {
> +            key = virXMLPropString(nodes[i], "alias");
> +            val = virXMLPropString(nodes[i], "fdset");
> +            if (key && val) {
> +                if (VIR_ALLOC(fdsetnum) < 0) {
> +                    virReportOOMError();
> +                    ret = -1;
> +                    goto error;
> +                }
> +                if (virStrToLong_ui(val, NULL, 10, fdsetnum) < 0) {
> +                    virReportError(VIR_ERR_INTERNAL_ERROR,
> +                                   _("incorrect fdset '%s', expected positive"
> +                                   "integer"), val);
> +                    VIR_FREE(fdsetnum);
> +                    ret = -1;
> +                    goto error;
> +                }
> +
> +                if (fdset->nextfdset <= *fdsetnum)
> +                    fdset->nextfdset = *fdsetnum + 1;
> +
> +                if (virHashAddEntry(fdset->aliasToFdSet, key, fdsetnum) < 0) {
> +                    virReportOOMError();
> +                    VIR_FREE(fdset);

Is this supposed to be freeing fdsetnum?

-- 
Regards,
Corey Bryant




More information about the libvir-list mailing list