1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00

smbd: remove unused get_ea_dos_attribute()

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Ralph Boehme 2020-11-03 07:57:37 +01:00
parent 04b4dc8649
commit 3db25c1c9b
2 changed files with 0 additions and 76 deletions

View File

@ -363,79 +363,6 @@ NTSTATUS parse_dos_attribute_blob(struct smb_filename *smb_fname,
return NT_STATUS_OK;
}
NTSTATUS get_ea_dos_attribute(connection_struct *conn,
struct smb_filename *smb_fname,
uint32_t *pattr)
{
DATA_BLOB blob;
ssize_t sizeret;
fstring attrstr;
NTSTATUS status;
if (!lp_store_dos_attributes(SNUM(conn))) {
return NT_STATUS_NOT_IMPLEMENTED;
}
/* Don't reset pattr to zero as we may already have filename-based attributes we
need to preserve. */
sizeret = SMB_VFS_GETXATTR(conn, smb_fname,
SAMBA_XATTR_DOS_ATTRIB, attrstr,
sizeof(attrstr));
if (sizeret == -1 && errno == EACCES) {
int saved_errno = 0;
/*
* According to MS-FSA 2.1.5.1.2.1 "Algorithm to Check Access to
* an Existing File" FILE_LIST_DIRECTORY on a directory implies
* FILE_READ_ATTRIBUTES for directory entries. Being able to
* stat() a file implies FILE_LIST_DIRECTORY for the directory
* containing the file.
*/
if (!VALID_STAT(smb_fname->st)) {
/*
* Safety net: dos_mode() already checks this, but as we
* become root based on this, add an additional layer of
* defense.
*/
DBG_ERR("Rejecting root override, invalid stat [%s]\n",
smb_fname_str_dbg(smb_fname));
return NT_STATUS_ACCESS_DENIED;
}
become_root();
sizeret = SMB_VFS_GETXATTR(conn, smb_fname,
SAMBA_XATTR_DOS_ATTRIB,
attrstr,
sizeof(attrstr));
if (sizeret == -1) {
saved_errno = errno;
}
unbecome_root();
if (saved_errno != 0) {
errno = saved_errno;
}
}
if (sizeret == -1) {
DBG_INFO("Cannot get attribute "
"from EA on file %s: Error = %s\n",
smb_fname_str_dbg(smb_fname), strerror(errno));
return map_nt_error_from_unix(errno);
}
blob.data = (uint8_t *)attrstr;
blob.length = sizeret;
status = parse_dos_attribute_blob(smb_fname, blob, pattr);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
return NT_STATUS_OK;
}
NTSTATUS fget_ea_dos_attribute(struct files_struct *fsp,
uint32_t *pattr)
{

View File

@ -287,9 +287,6 @@ bool set_sticky_write_time_path(struct file_id fileid, struct timespec mtime);
bool set_sticky_write_time_fsp(struct files_struct *fsp,
struct timespec mtime);
NTSTATUS get_ea_dos_attribute(connection_struct *conn,
struct smb_filename *smb_fname,
uint32_t *pattr);
NTSTATUS fget_ea_dos_attribute(struct files_struct *fsp,
uint32_t *pattr);
NTSTATUS set_ea_dos_attribute(connection_struct *conn,