]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Don't call regfree() if regcomp() fails
authorJim Fehlig <jfehlig@suse.com>
Wed, 4 Sep 2013 21:58:27 +0000 (15:58 -0600)
committerJim Fehlig <jfehlig@suse.com>
Thu, 5 Sep 2013 16:53:24 +0000 (10:53 -0600)
POSIX states that the preg parameter to regcomp() is undefined on
failure, so no need to call regfree() in these cases.

http://pubs.opengroup.org/onlinepubs/009695399/functions/regcomp.html

See also a discussion on the libvirt dev list

https://www.redhat.com/archives/libvir-list/2013-September/msg00262.html

src/storage/storage_backend.c
src/storage/storage_backend_logical.c
src/xen/xen_hypervisor.c

index ed893f014125a7746a91074c501405fe40ff477e..b7edf859500403c4ed730396851b5cffc2b6c475 100644 (file)
@@ -1579,7 +1579,7 @@ virStorageBackendRunProgRegex(virStoragePoolObjPtr pool,
             regerror(err, &reg[i], error, sizeof(error));
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("Failed to compile regex %s"), error);
-            for (j = 0; j <= i; j++)
+            for (j = 0; j < i; j++)
                 regfree(&reg[j]);
             VIR_FREE(reg);
             return -1;
index 8998a11b92158c93de7853c49dce4b69842a0773..0b146793e8190de4ea251dc6671b9b313a15b3ff 100644 (file)
@@ -195,7 +195,6 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
     if (err != 0) {
         char error[100];
         regerror(err, reg, error, sizeof(error));
-        regfree(reg);
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("Failed to compile regex %s"),
                        error);
index cd85b75fee2be74253b1f14f3a427c3b914178d4..f9c7b4083f1d93d20e784fe6329a38bdac8deefe 100644 (file)
@@ -1787,7 +1787,6 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
     if (errcode != 0) {
         char error[100];
         regerror(errcode, &flags_hvm_rec, error, sizeof(error));
-        regfree(&flags_hvm_rec);
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);
         return -1;
     }
@@ -1795,7 +1794,6 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
     if (errcode != 0) {
         char error[100];
         regerror(errcode, &flags_pae_rec, error, sizeof(error));
-        regfree(&flags_pae_rec);
         regfree(&flags_hvm_rec);
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);
         return -1;
@@ -1804,7 +1802,6 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
     if (errcode != 0) {
         char error[100];
         regerror(errcode, &xen_cap_rec, error, sizeof(error));
-        regfree(&xen_cap_rec);
         regfree(&flags_pae_rec);
         regfree(&flags_hvm_rec);
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);