[PATCH 1/6] s3:vfs_gpfs fix memory leaks in gpfs_getacl_alloc

Christian Ambach ambi at samba.org
Fri Nov 16 15:50:31 MST 2012


Signed-off-by: Christian Ambach <ambi at samba.org>
---
 source3/modules/vfs_gpfs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c
index 8e8c694..edf0273 100644
--- a/source3/modules/vfs_gpfs.c
+++ b/source3/modules/vfs_gpfs.c
@@ -242,6 +242,7 @@ static struct gpfs_acl *gpfs_getacl_alloc(const char *fname, gpfs_aclType_t type
 		struct gpfs_acl *new_acl = (struct gpfs_acl *)TALLOC_SIZE(
 			mem_ctx, acl->acl_len + sizeof(struct gpfs_acl));
 		if (new_acl == NULL) {
+			talloc_free(acl);
 			errno = ENOMEM;
 			return NULL;
 		}
@@ -250,13 +251,14 @@ static struct gpfs_acl *gpfs_getacl_alloc(const char *fname, gpfs_aclType_t type
 		new_acl->acl_level = acl->acl_level;
 		new_acl->acl_version = acl->acl_version;
 		new_acl->acl_type = acl->acl_type;
+		talloc_free(acl);
 		acl = new_acl;
 
 		ret = smbd_gpfs_getacl((char *)fname, GPFS_GETACL_STRUCT, acl);
 	}
-	if (ret != 0)
-	{
+	if (ret != 0) {
 		DEBUG(8, ("smbd_gpfs_getacl failed with %s\n",strerror(errno)));
+		talloc_free(acl);
 		return NULL;
 	}
 
-- 
1.7.11.7



More information about the samba-technical mailing list