[SCM] Samba Shared Repository - branch master updated
Andrew Bartlett
abartlet at samba.org
Fri Nov 16 17:12:02 MST 2012
The branch, master has been updated
via e6a100e s3:modules:nfs4_acls remove unused mem_ctx parameter to smbacl4_fill_ace4
via c9d7074 s3:modules:nfs4_acls fix memory hierarchy in smb_create_smb4acl
via 775d0a7 s3:vfs_gpfs fix a memory leak in gpfsacl_get_posix_acl
via 1a71f07 s3:vfs_gpfs fix memory corruption in gpfs2smb_acl
via 3dab1ef s3:vfs_gpfs fix memory leak in gpfs_get_nfs4_acl
via 3925a71 s3:vfs_gpfs fix memory leaks in gpfs_getacl_alloc
from 10b6cce samba-tool dns: Don't use "localhost" to connect to local host
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e6a100e86b7adf1c06a7c06b24fa50717ddcdb67
Author: Christian Ambach <ambi at samba.org>
Date: Mon Nov 5 18:49:54 2012 +0100
s3:modules:nfs4_acls remove unused mem_ctx parameter to smbacl4_fill_ace4
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
Autobuild-Date(master): Sat Nov 17 01:11:07 CET 2012 on sn-devel-104
commit c9d70740e39722a2f98ccd932b053723a4f3de62
Author: Christian Ambach <ambi at samba.org>
Date: Mon Nov 5 18:47:01 2012 +0100
s3:modules:nfs4_acls fix memory hierarchy in smb_create_smb4acl
the ACEs should be talloc children of the ACL itself and not be placed on talloc_tos()
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 775d0a78c496af8ddbde9eb0f8c2f6d5dc5bcc81
Author: Christian Ambach <ambi at samba.org>
Date: Fri Nov 2 08:41:40 2012 +0100
s3:vfs_gpfs fix a memory leak in gpfsacl_get_posix_acl
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 1a71f07cee0bfe50ea6821a195a950d2206aab55
Author: Christian Ambach <ambi at samba.org>
Date: Fri Nov 2 08:41:10 2012 +0100
s3:vfs_gpfs fix memory corruption in gpfs2smb_acl
sys_acl_init returns a SMB_ACL_T with zero entries in the acl array
reallocate the array to proper size before filling it, otherwise we overwrite memory
This one is a result of a improper fixing in 7a6182962966e5edb42728c8
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 3dab1ef8a57670a36a81e706895bbe225892f3ff
Author: Christian Ambach <ambi at samba.org>
Date: Fri Nov 2 08:39:45 2012 +0100
s3:vfs_gpfs fix memory leak in gpfs_get_nfs4_acl
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 3925a7114caaac56e79849ebf3aa13784918282b
Author: Christian Ambach <ambi at samba.org>
Date: Fri Nov 2 08:39:17 2012 +0100
s3:vfs_gpfs fix memory leaks in gpfs_getacl_alloc
Signed-off-by: Christian Ambach <ambi at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/modules/nfs4_acls.c | 7 ++-----
source3/modules/vfs_gpfs.c | 12 ++++++++++--
2 files changed, 12 insertions(+), 7 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index 48b045f..67db6b0 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -161,11 +161,10 @@ SMB4ACL_T *smb_create_smb4acl(void)
SMB4ACE_T *smb_add_ace4(SMB4ACL_T *theacl, SMB_ACE4PROP_T *prop)
{
SMB_ACL4_INT_T *aclint = get_validated_aclint(theacl);
- TALLOC_CTX *mem_ctx = talloc_tos();
SMB_ACE4_INT_T *ace;
ace = (SMB_ACE4_INT_T *)TALLOC_ZERO_SIZE(
- mem_ctx, sizeof(SMB_ACE4_INT_T));
+ theacl, sizeof(SMB_ACE4_INT_T));
if (ace==NULL)
{
DEBUG(0, ("TALLOC_SIZE failed\n"));
@@ -581,7 +580,6 @@ static SMB_ACE4PROP_T *smbacl4_find_equal_special(
static bool smbacl4_fill_ace4(
- TALLOC_CTX *mem_ctx,
const struct smb_filename *filename,
smbacl4_vfs_params *params,
uid_t ownerUID,
@@ -702,7 +700,6 @@ static SMB4ACL_T *smbacl4_win2nfs4(
{
SMB4ACL_T *theacl;
uint32 i;
- TALLOC_CTX *mem_ctx = talloc_tos();
const char *filename = fsp->fsp_name->base_name;
DEBUG(10, ("smbacl4_win2nfs4 invoked\n"));
@@ -715,7 +712,7 @@ static SMB4ACL_T *smbacl4_win2nfs4(
SMB_ACE4PROP_T ace_v4;
bool addNewACE = True;
- if (!smbacl4_fill_ace4(mem_ctx, fsp->fsp_name, pparams,
+ if (!smbacl4_fill_ace4(fsp->fsp_name, pparams,
ownerUID, ownerGID,
dacl->aces + i, &ace_v4)) {
DEBUG(3, ("Could not fill ace for file %s, SID %s\n",
diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c
index 8e8c694..8f5a19c 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;
}
@@ -286,6 +288,7 @@ static int gpfs_get_nfs4_acl(const char *fname, SMB4ACL_T **ppacl)
if (gacl->acl_type != GPFS_ACL_TYPE_NFS4) {
DEBUG(10, ("Got non-nfsv4 acl\n"));
/* Retry with POSIX ACLs check */
+ talloc_free(gacl);
return 1;
}
@@ -570,6 +573,8 @@ static SMB_ACL_T gpfs2smb_acl(const struct gpfs_acl *pacl, TALLOC_CTX *mem_ctx)
}
result->count = pacl->acl_nace;
+ result->acl = talloc_realloc(result, result->acl, struct smb_acl_entry,
+ result->count);
for (i=0; i<pacl->acl_nace; i++) {
struct smb_acl_entry *ace = &result->acl[i];
@@ -658,6 +663,9 @@ static SMB_ACL_T gpfsacl_get_posix_acl(const char *path, gpfs_aclType_t type,
done:
+ if (pacl != NULL) {
+ talloc_free(pacl);
+ }
if (errno != 0) {
TALLOC_FREE(result);
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list