mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
vfs_fruit: fix fruit_chmod() for the fruit:resource!=file case
The following code must only be executed for the fruit:resource=file case. While at it, remove an unnecessary lstat, use the stat info from smb_fname. Otherwise no change in behaviour for the fruit:resource=file case (the default). BUG: https://bugzilla.samba.org/show_bug.cgi?id=12427 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org>
This commit is contained in:
parent
6730e1035b
commit
22b509f52e
@ -2993,7 +2993,6 @@ static int fruit_chmod(vfs_handle_struct *handle,
|
||||
int rc = -1;
|
||||
char *adp = NULL;
|
||||
struct fruit_config_data *config = NULL;
|
||||
SMB_STRUCT_STAT sb;
|
||||
const char *path = smb_fname->base_name;
|
||||
struct smb_filename *smb_fname_adp = NULL;
|
||||
|
||||
@ -3005,14 +3004,16 @@ static int fruit_chmod(vfs_handle_struct *handle,
|
||||
SMB_VFS_HANDLE_GET_DATA(handle, config,
|
||||
struct fruit_config_data, return -1);
|
||||
|
||||
if (config->rsrc == FRUIT_RSRC_XATTR) {
|
||||
if (config->rsrc != FRUIT_RSRC_ADFILE) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* FIXME: direct sys_lstat(), missing smb_fname */
|
||||
rc = sys_lstat(path, &sb, false);
|
||||
if (rc != 0 || !S_ISREG(sb.st_ex_mode)) {
|
||||
return rc;
|
||||
if (!VALID_STAT(smb_fname->st)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!S_ISREG(smb_fname->st.st_ex_mode)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
rc = adouble_path(talloc_tos(), path, &adp);
|
||||
|
Loading…
Reference in New Issue
Block a user