[libvirt] [v0.9.12-maint v3 08/12] storage: Need to also VIR_FREE(reg)

Guido Günther agx at sigxcpu.org
Fri Sep 13 13:21:58 UTC 2013


From: Luca Tettamanti <ltettamanti at acunu.com>

Commit-id 'afc4631b' added the regfree(reg) to free resources alloc'd
during regcomp; however, reg still needed to be VIR_FREE()'d. The call
to regfree() also didn't account for possible NULL value.  Reformatted
the call to be closer to usage.
(cherry picked from commit 71da3b66a8455faf8019effe3cf504a31f91f54a)

Backported to 0.9.12 with afc4631b and its revert skipped.

Signed-off-by: Luca Tettamanti <ltettamanti acunu com>
---
 src/storage/storage_backend_logical.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index 9a91dd9..7abb17b 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -204,13 +204,16 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
     if (err != 0) {
         char error[100];
         regerror(err, reg, error, sizeof(error));
+        regfree(reg);
         virStorageReportError(VIR_ERR_INTERNAL_ERROR,
                               _("Failed to compile regex %s"),
                               error);
         goto cleanup;
     }
 
-    if (regexec(reg, groups[3], nvars, vars, 0) != 0) {
+    err = regexec(reg, groups[3], nvars, vars, 0);
+    regfree(reg);
+    if (err != 0) {
         virStorageReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                               _("malformed volume extent devices value"));
         goto cleanup;
-- 
1.8.4.rc3




More information about the libvir-list mailing list