mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
smb: client: use unaligned reads in parse_posix_ctxt()
The server controls create-context DataOffset, so the POSIX context data
pointer may be misaligned on strict-alignment architectures. Use
get_unaligned_le32() when reading nlink, reparse_tag, and mode.
Fixes: 69dda3059e ("cifs: add SMB2_open() arg to return POSIX data")
Cc: stable@vger.kernel.org
Signed-off-by: Zihan Xi <xizh2024@lzu.edu.cn>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
7ad2bcf244
commit
b86467cd26
|
|
@ -2396,9 +2396,9 @@ parse_posix_ctxt(struct create_context *cc, struct smb2_file_all_info *info,
|
|||
|
||||
memset(posix, 0, sizeof(*posix));
|
||||
|
||||
posix->nlink = le32_to_cpu(*(__le32 *)(beg + 0));
|
||||
posix->reparse_tag = le32_to_cpu(*(__le32 *)(beg + 4));
|
||||
posix->mode = le32_to_cpu(*(__le32 *)(beg + 8));
|
||||
posix->nlink = get_unaligned_le32(beg);
|
||||
posix->reparse_tag = get_unaligned_le32(beg + 4);
|
||||
posix->mode = get_unaligned_le32(beg + 8);
|
||||
|
||||
sid = beg + 12;
|
||||
sid_len = posix_info_sid_size(sid, end);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user