1
0
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:
Ralph Boehme 2016-12-02 09:02:27 +01:00 committed by Uri Simchoni
parent 6730e1035b
commit 22b509f52e

View File

@ -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);