mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 05:04:02 +02:00
ksmbd: fix partial normalized name responses
Windows may request FILE_NORMALIZED_NAME_INFORMATION with an output
buffer that only fits the fixed portion of the variable-length response.
Treat the fixed portion as FILE_NORMALIZED_NAME_INFORMATION_SIZE so ksmbd
returns STATUS_BUFFER_OVERFLOW instead of STATUS_INFO_LENGTH_MISMATCH.
This avoids rejecting valid partial normalized-name responses.
Fixes: 6b8b79226b ("ksmbd: fix partial file information responses")
Reported-by: Mobin Aydinfar <mobin@mobintestserver.ir>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
d7fd1f9860
commit
f4fafaf021
|
|
@ -7312,6 +7312,9 @@ static int smb2_get_info_file(struct ksmbd_work *work,
|
|||
case FILE_ALTERNATE_NAME_INFORMATION:
|
||||
fixed_len = FILE_ALTERNATE_NAME_INFORMATION_SIZE;
|
||||
break;
|
||||
case FILE_NORMALIZED_NAME_INFORMATION:
|
||||
fixed_len = FILE_NORMALIZED_NAME_INFORMATION_SIZE;
|
||||
break;
|
||||
case FILE_STREAM_INFORMATION:
|
||||
fixed_len = FILE_STREAM_INFORMATION_SIZE;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ struct file_sparse {
|
|||
#define FILE_ALLOCATION_INFORMATION_SIZE 19
|
||||
#define FILE_END_OF_FILE_INFORMATION_SIZE 20
|
||||
#define FILE_ALTERNATE_NAME_INFORMATION_SIZE 8
|
||||
#define FILE_NORMALIZED_NAME_INFORMATION_SIZE 8
|
||||
#define FILE_STREAM_INFORMATION_SIZE 32
|
||||
#define FILE_PIPE_INFORMATION_SIZE 23
|
||||
#define FILE_PIPE_LOCAL_INFORMATION_SIZE 24
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user