Skip to content

Commit 18d4676

Browse files
Ronnie Sahlbergsmfrench
authored andcommitted
ksmbd: remove RFC1002 check in smb2 request
In smb_common.c you have this function : ksmbd_smb_request() which is called from connection.c once you have read the initial 4 bytes for the next length+smb2 blob. It checks the first byte of this 4 byte preamble for valid values, i.e. a NETBIOSoverTCP SESSION_MESSAGE or a SESSION_KEEP_ALIVE. We don't need to check this for ksmbd since it only implements SMB2 over TCP port 445. The netbios stuff was only used in very old servers when SMB ran over TCP port 139. Now that we run over TCP port 445, this is actually not a NB header anymore and you can just treat it as a 4 byte length field that must be less than 16Mbyte. and remove the references to the RFC1002 constants that no longer applies. Cc: Tom Talpey <[email protected]> Cc: Ronnie Sahlberg <[email protected]> Cc: Ralph Böhme <[email protected]> Cc: Steve French <[email protected]> Cc: Sergey Senozhatsky <[email protected]> Acked-by: Hyunchul Lee <[email protected]> Signed-off-by: Ronnie Sahlberg <[email protected]> Signed-off-by: Namjae Jeon <[email protected]> Signed-off-by: Steve French <[email protected]>
1 parent 5816b3e commit 18d4676

File tree

2 files changed

+1
-22
lines changed

2 files changed

+1
-22
lines changed

fs/ksmbd/smb_common.c

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -155,20 +155,7 @@ int ksmbd_verify_smb_message(struct ksmbd_work *work)
155155
*/
156156
bool ksmbd_smb_request(struct ksmbd_conn *conn)
157157
{
158-
int type = *(char *)conn->request_buf;
159-
160-
switch (type) {
161-
case RFC1002_SESSION_MESSAGE:
162-
/* Regular SMB request */
163-
return true;
164-
case RFC1002_SESSION_KEEP_ALIVE:
165-
ksmbd_debug(SMB, "RFC 1002 session keep alive\n");
166-
break;
167-
default:
168-
ksmbd_debug(SMB, "RFC 1002 unknown request type 0x%x\n", type);
169-
}
170-
171-
return false;
158+
return conn->request_buf[0] == 0;
172159
}
173160

174161
static bool supported_protocol(int idx)

fs/ksmbd/smb_common.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,6 @@
4848
#define CIFS_DEFAULT_IOSIZE (64 * 1024)
4949
#define MAX_CIFS_SMALL_BUFFER_SIZE 448 /* big enough for most */
5050

51-
/* RFC 1002 session packet types */
52-
#define RFC1002_SESSION_MESSAGE 0x00
53-
#define RFC1002_SESSION_REQUEST 0x81
54-
#define RFC1002_POSITIVE_SESSION_RESPONSE 0x82
55-
#define RFC1002_NEGATIVE_SESSION_RESPONSE 0x83
56-
#define RFC1002_RETARGET_SESSION_RESPONSE 0x84
57-
#define RFC1002_SESSION_KEEP_ALIVE 0x85
58-
5951
/* Responses when opening a file. */
6052
#define F_SUPERSEDED 0
6153
#define F_OPENED 1

0 commit comments

Comments
 (0)