diff options
author | Namjae Jeon <namjae.jeon@samsung.com> | 2021-08-21 23:26:01 +0900 |
---|---|---|
committer | Namjae Jeon <namjae.jeon@samsung.com> | 2021-08-21 23:26:34 +0900 |
commit | e70e392fa768d46ca59f2f8c0e7374099c980622 (patch) | |
tree | 0cfee79dd3e560ca1399274fe8f72424f8809b8d /fs/ksmbd/smb2pdu.c | |
parent | a9a27d4ab3de2a6a81bad4b158c74a554d78e89b (diff) | |
download | lwn-e70e392fa768d46ca59f2f8c0e7374099c980622.tar.gz lwn-e70e392fa768d46ca59f2f8c0e7374099c980622.zip |
ksmbd: fix permission check issue on chown and chmod
When commanding chmod and chown on cifs&ksmbd, ksmbd allows it without file
permissions check. There is code to check it in settattr_prepare.
Instead of setting the inode directly, update the mode and uid/gid
through notify_change.
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/ksmbd/smb2pdu.c')
-rw-r--r-- | fs/ksmbd/smb2pdu.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c index 0131997c2177..d329ea49fa14 100644 --- a/fs/ksmbd/smb2pdu.c +++ b/fs/ksmbd/smb2pdu.c @@ -5861,10 +5861,15 @@ int smb2_set_info(struct ksmbd_work *work) break; case SMB2_O_INFO_SECURITY: ksmbd_debug(SMB, "GOT SMB2_O_INFO_SECURITY\n"); + if (ksmbd_override_fsids(work)) { + rc = -ENOMEM; + goto err_out; + } rc = smb2_set_info_sec(fp, le32_to_cpu(req->AdditionalInformation), req->Buffer, le32_to_cpu(req->BufferLength)); + ksmbd_revert_fsids(work); break; default: rc = -EOPNOTSUPP; |