mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
r3117: Fix from Tom Lackemann <cessnatomny@yahoo.com> for bug #1954.
Memory leak in posix acl code. Jeremy.
This commit is contained in:
parent
3e28c57695
commit
c97aab7ee6
@ -3195,6 +3195,7 @@ int get_acl_group_bits( connection_struct *conn, const char *fname, mode_t *mode
|
||||
int entry_id = SMB_ACL_FIRST_ENTRY;
|
||||
SMB_ACL_ENTRY_T entry;
|
||||
SMB_ACL_T posix_acl;
|
||||
int result = -1;
|
||||
|
||||
posix_acl = SMB_VFS_SYS_ACL_GET_FILE(conn, fname, SMB_ACL_TYPE_ACCESS);
|
||||
if (posix_acl == (SMB_ACL_T)NULL)
|
||||
@ -3209,20 +3210,22 @@ int get_acl_group_bits( connection_struct *conn, const char *fname, mode_t *mode
|
||||
entry_id = SMB_ACL_NEXT_ENTRY;
|
||||
|
||||
if (SMB_VFS_SYS_ACL_GET_TAG_TYPE(conn, entry, &tagtype) ==-1)
|
||||
return -1;
|
||||
break;
|
||||
|
||||
if (tagtype == SMB_ACL_GROUP_OBJ) {
|
||||
if (SMB_VFS_SYS_ACL_GET_PERMSET(conn, entry, &permset) == -1) {
|
||||
return -1;
|
||||
break;
|
||||
} else {
|
||||
*mode &= ~(S_IRGRP|S_IWGRP|S_IXGRP);
|
||||
*mode |= (SMB_VFS_SYS_ACL_GET_PERM(conn, permset, SMB_ACL_READ) ? S_IRGRP : 0);
|
||||
*mode |= (SMB_VFS_SYS_ACL_GET_PERM(conn, permset, SMB_ACL_WRITE) ? S_IWGRP : 0);
|
||||
*mode |= (SMB_VFS_SYS_ACL_GET_PERM(conn, permset, SMB_ACL_EXECUTE) ? S_IXGRP : 0);
|
||||
return 0;;
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
SMB_VFS_SYS_ACL_FREE_ACL(conn, posix_acl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user