diff options
author | Volker Lendecke <vl@sernet.de> | 2007-10-13 21:06:49 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2007-11-13 15:47:01 +0100 |
commit | 15953b82eb3b49d736b4b835b1d0d3cf0da0bff8 (patch) | |
tree | 4b3d872f0e8747386fb21fc1a893c0558aa2fc75 /source3/modules/nfs4_acls.c | |
parent | 9441d1ba87313e0ecc6e6971a25e7ad0c280fdd7 (diff) | |
download | samba-15953b82eb3b49d736b4b835b1d0d3cf0da0bff8.tar.gz samba-15953b82eb3b49d736b4b835b1d0d3cf0da0bff8.tar.xz samba-15953b82eb3b49d736b4b835b1d0d3cf0da0bff8.zip |
Make [f]get_nt_acl return NTSTATUS
(This used to be commit dcbe1bf942d017a3cd5084c6ef605a13912f795b)
Diffstat (limited to 'source3/modules/nfs4_acls.c')
-rw-r--r-- | source3/modules/nfs4_acls.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c index 2d81739203d..207c2ab537c 100644 --- a/source3/modules/nfs4_acls.c +++ b/source3/modules/nfs4_acls.c @@ -257,7 +257,7 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T *acl, /* in */ return True; } -size_t smb_get_nt_acl_nfs4(files_struct *fsp, +NTSTATUS smb_get_nt_acl_nfs4(files_struct *fsp, uint32 security_info, SEC_DESC **ppdesc, SMB4ACL_T *acl) { @@ -272,23 +272,25 @@ size_t smb_get_nt_acl_nfs4(files_struct *fsp, DEBUG(10, ("smb_get_nt_acl_nfs4 invoked for %s\n", fsp->fsp_name)); if (acl==NULL || smb_get_naces(acl)==0) - return 0; /* special because we shouldn't alloc 0 for win */ + return NT_STATUS_ACCESS_DENIED; /* special because we + * shouldn't alloc 0 for + * win */ if (smbacl4_GetFileOwner(fsp, &sbuf)) - return 0; + return map_nt_error_from_unix(errno); uid_to_sid(&sid_owner, sbuf.st_uid); gid_to_sid(&sid_group, sbuf.st_gid); if (smbacl4_nfs42win(mem_ctx, acl, &sid_owner, &sid_group, &nt_ace_list, &good_aces)==False) { DEBUG(8,("smbacl4_nfs42win failed\n")); - return 0; + return map_nt_error_from_unix(errno); } psa = make_sec_acl(mem_ctx, NT4_ACL_REVISION, good_aces, nt_ace_list); if (psa == NULL) { DEBUG(2,("make_sec_acl failed\n")); - return 0; + return NT_STATUS_NO_MEMORY; } DEBUG(10,("after make sec_acl\n")); @@ -298,11 +300,13 @@ size_t smb_get_nt_acl_nfs4(files_struct *fsp, NULL, psa, &sd_size); if (*ppdesc==NULL) { DEBUG(2,("make_sec_desc failed\n")); - return 0; + return NT_STATUS_NO_MEMORY; } - DEBUG(10, ("smb_get_nt_acl_nfs4 successfully exited with sd_size %d\n", sd_size)); - return sd_size; + DEBUG(10, ("smb_get_nt_acl_nfs4 successfully exited with sd_size %d\n", + sec_desc_size(*ppdesc))); + + return NT_STATUS_OK; } enum smbacl4_mode_enum {e_simple=0, e_special=1}; |