mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
ksmbd: override fsids for smb2_query_info()
Sangsoo reported that a DAC denial error occurred when accessing files through the ksmbd thread. This patch override fsids for smb2_query_info(). Reported-by: Sangsoo Lee <constant.lee@samsung.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
a018c1b636
commit
f6bd41280a
@ -5596,6 +5596,11 @@ int smb2_query_info(struct ksmbd_work *work)
|
||||
|
||||
ksmbd_debug(SMB, "GOT query info request\n");
|
||||
|
||||
if (ksmbd_override_fsids(work)) {
|
||||
rc = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
switch (req->InfoType) {
|
||||
case SMB2_O_INFO_FILE:
|
||||
ksmbd_debug(SMB, "GOT SMB2_O_INFO_FILE\n");
|
||||
@ -5614,6 +5619,7 @@ int smb2_query_info(struct ksmbd_work *work)
|
||||
req->InfoType);
|
||||
rc = -EOPNOTSUPP;
|
||||
}
|
||||
ksmbd_revert_fsids(work);
|
||||
|
||||
if (!rc) {
|
||||
rsp->StructureSize = cpu_to_le16(9);
|
||||
@ -5623,6 +5629,7 @@ int smb2_query_info(struct ksmbd_work *work)
|
||||
le32_to_cpu(rsp->OutputBufferLength));
|
||||
}
|
||||
|
||||
err_out:
|
||||
if (rc < 0) {
|
||||
if (rc == -EACCES)
|
||||
rsp->hdr.Status = STATUS_ACCESS_DENIED;
|
||||
|
Loading…
Reference in New Issue
Block a user