1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s3: VFS: acl_xattr.c: Add fget_acl_blob().

Separate from get_acl_blob() which took both an fsp and a pathname.
Commented out so we still compile.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
Jeremy Allison 2020-04-13 12:24:14 -07:00
parent 4ac3fde1a9
commit 936b9aee5e

View File

@ -64,6 +64,66 @@ static ssize_t getxattr_do(vfs_handle_struct *handle,
return sizeret;
}
#if 0
static NTSTATUS fget_acl_blob(TALLOC_CTX *ctx,
vfs_handle_struct *handle,
files_struct *fsp,
DATA_BLOB *pblob)
{
size_t size = 4096;
uint8_t *val = NULL;
uint8_t *tmp;
ssize_t sizeret;
ZERO_STRUCTP(pblob);
again:
tmp = talloc_realloc(ctx, val, uint8_t, size);
if (tmp == NULL) {
TALLOC_FREE(val);
return NT_STATUS_NO_MEMORY;
}
val = tmp;
sizeret =
getxattr_do(handle, fsp, NULL, XATTR_NTACL_NAME, val, size);
if (sizeret >= 0) {
pblob->data = val;
pblob->length = sizeret;
return NT_STATUS_OK;
}
if (errno != ERANGE) {
goto err;
}
/* Too small, try again. */
sizeret =
getxattr_do(handle, fsp, NULL, XATTR_NTACL_NAME, NULL, 0);
if (sizeret < 0) {
goto err;
}
if (size < sizeret) {
size = sizeret;
}
if (size > 65536) {
/* Max ACL size is 65536 bytes. */
errno = ERANGE;
goto err;
}
goto again;
err:
/* Real error - exit here. */
TALLOC_FREE(val);
return map_nt_error_from_unix(errno);
}
#endif
static NTSTATUS get_acl_blob(TALLOC_CTX *ctx,
vfs_handle_struct *handle,
files_struct *fsp,