summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/lib/sysacls.c59
-rw-r--r--source3/modules/vfs_aixacl.c12
-rw-r--r--source3/modules/vfs_irixacl.c8
-rw-r--r--source3/modules/vfs_solarisacl.c2
4 files changed, 50 insertions, 31 deletions
diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c
index 2245491030..d77b2a6822 100644
--- a/source3/lib/sysacls.c
+++ b/source3/lib/sysacls.c
@@ -395,14 +395,16 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#elif defined(HAVE_AIX_ACLS)
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
- return aixacl_sys_acl_get_file(handle, path_p, type);
+ return aixacl_sys_acl_get_file(handle, path_p, type, mem_ctx);
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
- return aixacl_sys_acl_get_fd(handle, fsp);
+ return aixacl_sys_acl_get_fd(handle, fsp, mem_ctx);
}
int sys_acl_set_file(vfs_handle_struct *handle,
@@ -426,14 +428,17 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#elif defined(HAVE_TRU64_ACLS)
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
- return tru64acl_sys_acl_get_file(handle, path_p, type);
+ return tru64acl_sys_acl_get_file(handle, path_p, type,
+ mem_ctx);
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
- return tru64acl_sys_acl_get_fd(handle, fsp);
+ return tru64acl_sys_acl_get_fd(handle, fsp, mem_ctx);
}
int sys_acl_set_file(vfs_handle_struct *handle,
@@ -457,14 +462,18 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#elif defined(HAVE_SOLARIS_ACLS) || defined(HAVE_UNIXWARE_ACLS)
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
- return solarisacl_sys_acl_get_file(handle, path_p, type);
+ return solarisacl_sys_acl_get_file(handle, path_p, type,
+ mem_ctx);
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
- return solarisacl_sys_acl_get_fd(handle, fsp);
+ return solarisacl_sys_acl_get_fd(handle, fsp,
+ mem_ctx);
}
int sys_acl_set_file(vfs_handle_struct *handle,
@@ -488,14 +497,16 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#elif defined(HAVE_HPUX_ACLS)
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
- return hpuxacl_sys_acl_get_file(handle, path_p, type);
+ return hpuxacl_sys_acl_get_file(handle, path_p, type, mem_ctx);
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
- return hpuxacl_sys_acl_get_fd(handle, fsp);
+ return hpuxacl_sys_acl_get_fd(handle, fsp, mem_ctx);
}
int sys_acl_set_file(vfs_handle_struct *handle,
@@ -519,14 +530,16 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#elif defined(HAVE_IRIX_ACLS)
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
- return irixacl_sys_acl_get_file(handle, path_p, type);
+ return irixacl_sys_acl_get_file(handle, path_p, type, mem_ctx);
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
- return irixacl_sys_acl_get_fd(handle, fsp);
+ return irixacl_sys_acl_get_fd(handle, fsp, mem_ctx);
}
int sys_acl_set_file(vfs_handle_struct *handle,
@@ -550,7 +563,8 @@ int sys_acl_delete_def_file(vfs_handle_struct *handle,
#else /* No ACLs. */
SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p, SMB_ACL_TYPE_T type)
+ const char *path_p, SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
#ifdef ENOTSUP
errno = ENOTSUP;
@@ -560,7 +574,8 @@ SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,
return NULL;
}
-SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp)
+SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
#ifdef ENOTSUP
errno = ENOTSUP;
diff --git a/source3/modules/vfs_aixacl.c b/source3/modules/vfs_aixacl.c
index 25d9089ba5..459ea6f297 100644
--- a/source3/modules/vfs_aixacl.c
+++ b/source3/modules/vfs_aixacl.c
@@ -23,8 +23,9 @@
#include "vfs_aixacl_util.h"
SMB_ACL_T aixacl_sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p,
- SMB_ACL_TYPE_T type)
+ const char *path_p,
+ SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
struct acl *file_acl = (struct acl *)NULL;
struct smb_acl_t *result = (struct smb_acl_t *)NULL;
@@ -71,7 +72,7 @@ SMB_ACL_T aixacl_sys_acl_get_file(vfs_handle_struct *handle,
DEBUG(10,("Got facl and returned it\n"));
- result = aixacl_to_smbacl(file_acl);
+ result = aixacl_to_smbacl(file_acl, mem_ctx);
SAFE_FREE(file_acl);
return result;
@@ -80,7 +81,8 @@ SMB_ACL_T aixacl_sys_acl_get_file(vfs_handle_struct *handle,
}
SMB_ACL_T aixacl_sys_acl_get_fd(vfs_handle_struct *handle,
- files_struct *fsp)
+ files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
struct acl *file_acl = (struct acl *)NULL;
@@ -122,7 +124,7 @@ SMB_ACL_T aixacl_sys_acl_get_fd(vfs_handle_struct *handle,
DEBUG(10,("Got facl and returned it\n"));
- result = aixacl_to_smbacl(file_acl);
+ result = aixacl_to_smbacl(file_acl, mem_ctx);
SAFE_FREE(file_acl);
return result;
diff --git a/source3/modules/vfs_irixacl.c b/source3/modules/vfs_irixacl.c
index b3972246b9..78484fc7f8 100644
--- a/source3/modules/vfs_irixacl.c
+++ b/source3/modules/vfs_irixacl.c
@@ -28,15 +28,17 @@
/* public functions - the api */
SMB_ACL_T irixacl_sys_acl_get_file(vfs_handle_struct *handle,
- const char *path_p,
- SMB_ACL_TYPE_T type)
+ const char *path_p,
+ SMB_ACL_TYPE_T type,
+ TALLOC_CTX *mem_ctx)
{
errno = ENOTSUP;
return NULL;
}
SMB_ACL_T irixacl_sys_acl_get_fd(vfs_handle_struct *handle,
- files_struct *fsp)
+ files_struct *fsp,
+ TALLOC_CTX *mem_ctx)
{
errno = ENOTSUP;
return NULL;
diff --git a/source3/modules/vfs_solarisacl.c b/source3/modules/vfs_solarisacl.c
index a5f787f494..dd5fe82cfa 100644
--- a/source3/modules/vfs_solarisacl.c
+++ b/source3/modules/vfs_solarisacl.c
@@ -120,7 +120,7 @@ SMB_ACL_T solarisacl_sys_acl_get_fd(vfs_handle_struct *handle,
* access acl. So we need to filter this out here.
*/
result = solaris_acl_to_smb_acl(solaris_acl, count,
- SMB_ACL_TYPE_ACCESS);
+ SMB_ACL_TYPE_ACCESS, mem_ctx);
if (result == NULL) {
DEBUG(10, ("conversion solaris_acl -> smb_acl failed (%s).\n",
strerror(errno)));