diff options
| author | Pali Rohár <[email protected]> | 2024-12-31 15:06:22 +0000 |
|---|---|---|
| committer | Steve French <[email protected]> | 2025-06-02 01:45:40 +0000 |
| commit | a3e771afbb3bce91c8296828304903e7348003fe (patch) | |
| tree | 2e610f28ea11dbfe0b477f8601d0498fd3745d10 /rust/helpers/platform.c | |
| parent | cifs: Fix validation of SMB1 query reparse point response (diff) | |
| download | kernel-a3e771afbb3bce91c8296828304903e7348003fe.tar.gz kernel-a3e771afbb3bce91c8296828304903e7348003fe.zip | |
cifs: Fix cifs_query_path_info() for Windows NT servers
For TRANS2 QUERY_PATH_INFO request when the path does not exist, the
Windows NT SMB server returns error response STATUS_OBJECT_NAME_NOT_FOUND
or ERRDOS/ERRbadfile without the SMBFLG_RESPONSE flag set. Similarly it
returns STATUS_DELETE_PENDING when the file is being deleted. And looks
like that any error response from TRANS2 QUERY_PATH_INFO does not have
SMBFLG_RESPONSE flag set.
So relax check in check_smb_hdr() for detecting if the packet is response
for this special case.
This change fixes stat() operation against Windows NT SMB servers and also
all operations which depends on -ENOENT result from stat like creat() or
mkdir().
Signed-off-by: Pali Rohár <[email protected]>
Signed-off-by: Steve French <[email protected]>
Diffstat (limited to 'rust/helpers/platform.c')
0 files changed, 0 insertions, 0 deletions
