diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-10-10 10:18:32 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-10-11 12:25:11 +1100 |
commit | 9158974540d0e311021f04789ed75ebda466c5b3 (patch) | |
tree | 5cdc75d2c7527e94df2bb9292d276cbf8e36499a /source3/include | |
parent | a4d1f2223abdb0db2a15742ebd59a611cc157443 (diff) | |
download | samba-9158974540d0e311021f04789ed75ebda466c5b3.tar.gz samba-9158974540d0e311021f04789ed75ebda466c5b3.tar.bz2 samba-9158974540d0e311021f04789ed75ebda466c5b3.zip |
smbd: Add mem_ctx to sys_acl_init() and all callers
This changes from allocation on NULL to allocation on the supplied
memory context.
Currently that supplied context is talloc_tos() at the the final consumer of
the ACL.
Andrew Bartlett
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/smb_acls.h | 8 | ||||
-rw-r--r-- | source3/include/vfs.h | 15 | ||||
-rw-r--r-- | source3/include/vfs_macros.h | 18 |
3 files changed, 25 insertions, 16 deletions
diff --git a/source3/include/smb_acls.h b/source3/include/smb_acls.h index dbcf3b7269..3ac23dbbfd 100644 --- a/source3/include/smb_acls.h +++ b/source3/include/smb_acls.h @@ -44,7 +44,7 @@ int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d); int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm); int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm); char *sys_acl_to_text(const struct smb_acl_t *acl_d, ssize_t *len_p); -SMB_ACL_T sys_acl_init(void); +SMB_ACL_T sys_acl_init(TALLOC_CTX *mem_ctx); int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p); int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type); int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p); @@ -52,8 +52,10 @@ int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d); int sys_acl_free_text(char *text); int sys_acl_valid(SMB_ACL_T acl_d); SMB_ACL_T sys_acl_get_file(struct vfs_handle_struct *handle, - const char *path_p, SMB_ACL_TYPE_T type); -SMB_ACL_T sys_acl_get_fd(struct vfs_handle_struct *handle, struct files_struct *fsp); + const char *path_p, SMB_ACL_TYPE_T type, + TALLOC_CTX *mem_ctx); +SMB_ACL_T sys_acl_get_fd(struct vfs_handle_struct *handle, struct files_struct *fsp, + TALLOC_CTX *mem_ctx); int sys_acl_set_file(struct vfs_handle_struct *handle, const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d); int sys_acl_set_fd(struct vfs_handle_struct *handle, struct files_struct *fsp, diff --git a/source3/include/vfs.h b/source3/include/vfs.h index c83e7ed54b..4ba11be94e 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -692,8 +692,13 @@ struct vfs_fn_pointers { int (*chmod_acl_fn)(struct vfs_handle_struct *handle, const char *name, mode_t mode); int (*fchmod_acl_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, mode_t mode); - SMB_ACL_T (*sys_acl_get_file_fn)(struct vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type); - SMB_ACL_T (*sys_acl_get_fd_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp); + SMB_ACL_T (*sys_acl_get_file_fn)(struct vfs_handle_struct *handle, + const char *path_p, + SMB_ACL_TYPE_T type, + TALLOC_CTX *mem_ctx); + SMB_ACL_T (*sys_acl_get_fd_fn)(struct vfs_handle_struct *handle, + struct files_struct *fsp, + TALLOC_CTX *mem_ctx); int (*sys_acl_blob_get_file_fn)(struct vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob); @@ -1094,9 +1099,11 @@ int smb_vfs_call_fchmod_acl(struct vfs_handle_struct *handle, struct files_struct *fsp, mode_t mode); SMB_ACL_T smb_vfs_call_sys_acl_get_file(struct vfs_handle_struct *handle, const char *path_p, - SMB_ACL_TYPE_T type); + SMB_ACL_TYPE_T type, + TALLOC_CTX *mem_ctx); SMB_ACL_T smb_vfs_call_sys_acl_get_fd(struct vfs_handle_struct *handle, - struct files_struct *fsp); + struct files_struct *fsp, + TALLOC_CTX *mem_ctx); int smb_vfs_call_sys_acl_blob_get_file(struct vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index 4eca1b0748..f1bc8ffa4c 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -429,15 +429,15 @@ #define SMB_VFS_NEXT_FCHMOD_ACL(handle, fsp, mode) \ smb_vfs_call_fchmod_acl((handle)->next, (fsp), (mode)) -#define SMB_VFS_SYS_ACL_GET_FILE(conn, path_p, type) \ - smb_vfs_call_sys_acl_get_file((conn)->vfs_handles, (path_p), (type)) -#define SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, path_p, type) \ - smb_vfs_call_sys_acl_get_file((handle)->next, (path_p), (type)) - -#define SMB_VFS_SYS_ACL_GET_FD(fsp) \ - smb_vfs_call_sys_acl_get_fd((fsp)->conn->vfs_handles, (fsp)) -#define SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp) \ - smb_vfs_call_sys_acl_get_fd((handle)->next, (fsp)) +#define SMB_VFS_SYS_ACL_GET_FILE(conn, path_p, type, mem_ctx) \ + smb_vfs_call_sys_acl_get_file((conn)->vfs_handles, (path_p), (type), (mem_ctx)) +#define SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, path_p, type, mem_ctx) \ + smb_vfs_call_sys_acl_get_file((handle)->next, (path_p), (type), (mem_ctx)) + +#define SMB_VFS_SYS_ACL_GET_FD(fsp, mem_ctx) \ + smb_vfs_call_sys_acl_get_fd((fsp)->conn->vfs_handles, (fsp), (mem_ctx)) +#define SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp, mem_ctx) \ + smb_vfs_call_sys_acl_get_fd((handle)->next, (fsp), (mem_ctx)) #define SMB_VFS_SYS_ACL_BLOB_GET_FILE(conn, path_p, type, mem_ctx, blob_description, blob) \ smb_vfs_call_sys_acl_blob_get_file((conn)->vfs_handles, (path_p), (type), (mem_ctx), (blob_description), (blob)) |