Blob Blame History Raw
From fb0892abcce6984230ecabd4191afeea997df204 Mon Sep 17 00:00:00 2001
From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
Date: Mon, 14 Aug 2017 16:31:26 -0400
Subject: [PATCH 604/604] api: memory leak in glfs_h_acl_get(), missing dict
 unref

master review https://review.gluster.org/17092 circa April 2017
Fix already exists in release-3.12 and release-3.11 branches

Hat tip to Shyam (srangana[at]redhat.com) who found the existing
fix after sitting and debugging it with me for several hours.

upstream Change-Id: Ic7169fd05aff7bf46108e8ac7b1f29688a7f2358

Change-Id: I954967113fd35da1f37603a70771289a67232e07
Reported-by: Kinglong Mee <mijinlong@open-fs.com>
BUG: 1481392
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/115321
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
 api/src/glfs-handleops.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c
index 88f9ab1..25eb861 100644
--- a/api/src/glfs-handleops.c
+++ b/api/src/glfs-handleops.c
@@ -2303,13 +2303,15 @@ pub_glfs_h_acl_get (struct glfs *fs, struct glfs_object *object,
                 goto out;
 
         ret = dict_get_str (xattr, (char *)acl_key, &acl_s);
-        if (ret == -1)
+        if (ret)
                 goto out;
 
         acl = acl_from_text (acl_s);
 
 out:
-        GF_FREE (acl_s);
+        if (xattr)
+                dict_unref (xattr);
+
         if (IA_ISLNK (object->inode->ia_type) && new_object)
                 glfs_h_close (new_object);
 
-- 
1.8.3.1