Commit 51a13873 authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French

ksmbd: remove the leftover of smb2.0 dialect support

Although ksmbd doesn't send SMB2.0 support in supported dialect list of smb
negotiate response, There is the leftover of smb2.0 dialect.
This patch remove it not to support SMB2.0 in ksmbd.

Cc: Tom Talpey <tom@talpey.com>
Cc: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: Ralph Böhme <slow@samba.org>
Cc: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent c2e99d47
...@@ -187,11 +187,6 @@ static struct smb_version_cmds smb2_0_server_cmds[NUMBER_OF_SMB2_COMMANDS] = { ...@@ -187,11 +187,6 @@ static struct smb_version_cmds smb2_0_server_cmds[NUMBER_OF_SMB2_COMMANDS] = {
[SMB2_CHANGE_NOTIFY_HE] = { .proc = smb2_notify}, [SMB2_CHANGE_NOTIFY_HE] = { .proc = smb2_notify},
}; };
int init_smb2_0_server(struct ksmbd_conn *conn)
{
return -EOPNOTSUPP;
}
/** /**
* init_smb2_1_server() - initialize a smb server connection with smb2.1 * init_smb2_1_server() - initialize a smb server connection with smb2.1
* command dispatcher * command dispatcher
......
...@@ -236,9 +236,6 @@ int init_smb2_neg_rsp(struct ksmbd_work *work) ...@@ -236,9 +236,6 @@ int init_smb2_neg_rsp(struct ksmbd_work *work)
if (conn->need_neg == false) if (conn->need_neg == false)
return -EINVAL; return -EINVAL;
if (!(conn->dialect >= SMB20_PROT_ID &&
conn->dialect <= SMB311_PROT_ID))
return -EINVAL;
rsp_hdr = work->response_buf; rsp_hdr = work->response_buf;
...@@ -1166,13 +1163,6 @@ int smb2_handle_negotiate(struct ksmbd_work *work) ...@@ -1166,13 +1163,6 @@ int smb2_handle_negotiate(struct ksmbd_work *work)
case SMB21_PROT_ID: case SMB21_PROT_ID:
init_smb2_1_server(conn); init_smb2_1_server(conn);
break; break;
case SMB20_PROT_ID:
rc = init_smb2_0_server(conn);
if (rc) {
rsp->hdr.Status = STATUS_NOT_SUPPORTED;
goto err_out;
}
break;
case SMB2X_PROT_ID: case SMB2X_PROT_ID:
case BAD_PROT_ID: case BAD_PROT_ID:
default: default:
...@@ -1191,11 +1181,9 @@ int smb2_handle_negotiate(struct ksmbd_work *work) ...@@ -1191,11 +1181,9 @@ int smb2_handle_negotiate(struct ksmbd_work *work)
rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size); rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size);
rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size); rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size);
if (conn->dialect > SMB20_PROT_ID) { memcpy(conn->ClientGUID, req->ClientGUID,
memcpy(conn->ClientGUID, req->ClientGUID, SMB2_CLIENT_GUID_SIZE);
SMB2_CLIENT_GUID_SIZE); conn->cli_sec_mode = le16_to_cpu(req->SecurityMode);
conn->cli_sec_mode = le16_to_cpu(req->SecurityMode);
}
rsp->StructureSize = cpu_to_le16(65); rsp->StructureSize = cpu_to_le16(65);
rsp->DialectRevision = cpu_to_le16(conn->dialect); rsp->DialectRevision = cpu_to_le16(conn->dialect);
...@@ -1537,11 +1525,9 @@ static int ntlm_authenticate(struct ksmbd_work *work) ...@@ -1537,11 +1525,9 @@ static int ntlm_authenticate(struct ksmbd_work *work)
} }
} }
if (conn->dialect > SMB20_PROT_ID) { if (!ksmbd_conn_lookup_dialect(conn)) {
if (!ksmbd_conn_lookup_dialect(conn)) { pr_err("fail to verify the dialect\n");
pr_err("fail to verify the dialect\n"); return -ENOENT;
return -ENOENT;
}
} }
return 0; return 0;
} }
...@@ -1623,11 +1609,9 @@ static int krb5_authenticate(struct ksmbd_work *work) ...@@ -1623,11 +1609,9 @@ static int krb5_authenticate(struct ksmbd_work *work)
} }
} }
if (conn->dialect > SMB20_PROT_ID) { if (!ksmbd_conn_lookup_dialect(conn)) {
if (!ksmbd_conn_lookup_dialect(conn)) { pr_err("fail to verify the dialect\n");
pr_err("fail to verify the dialect\n"); return -ENOENT;
return -ENOENT;
}
} }
return 0; return 0;
} }
......
...@@ -1637,7 +1637,6 @@ struct smb2_posix_info { ...@@ -1637,7 +1637,6 @@ struct smb2_posix_info {
} __packed; } __packed;
/* functions */ /* functions */
int init_smb2_0_server(struct ksmbd_conn *conn);
void init_smb2_1_server(struct ksmbd_conn *conn); void init_smb2_1_server(struct ksmbd_conn *conn);
void init_smb3_0_server(struct ksmbd_conn *conn); void init_smb3_0_server(struct ksmbd_conn *conn);
void init_smb3_02_server(struct ksmbd_conn *conn); void init_smb3_02_server(struct ksmbd_conn *conn);
......
...@@ -88,7 +88,7 @@ unsigned int ksmbd_server_side_copy_max_total_size(void) ...@@ -88,7 +88,7 @@ unsigned int ksmbd_server_side_copy_max_total_size(void)
inline int ksmbd_min_protocol(void) inline int ksmbd_min_protocol(void)
{ {
return SMB2_PROT; return SMB21_PROT;
} }
inline int ksmbd_max_protocol(void) inline int ksmbd_max_protocol(void)
...@@ -427,7 +427,7 @@ int ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname, ...@@ -427,7 +427,7 @@ int ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname,
static int __smb2_negotiate(struct ksmbd_conn *conn) static int __smb2_negotiate(struct ksmbd_conn *conn)
{ {
return (conn->dialect >= SMB20_PROT_ID && return (conn->dialect >= SMB21_PROT_ID &&
conn->dialect <= SMB311_PROT_ID); conn->dialect <= SMB311_PROT_ID);
} }
...@@ -457,7 +457,7 @@ int ksmbd_smb_negotiate_common(struct ksmbd_work *work, unsigned int command) ...@@ -457,7 +457,7 @@ int ksmbd_smb_negotiate_common(struct ksmbd_work *work, unsigned int command)
} }
} }
if (command == SMB2_NEGOTIATE_HE) { if (command == SMB2_NEGOTIATE_HE && __smb2_negotiate(conn)) {
ret = smb2_handle_negotiate(work); ret = smb2_handle_negotiate(work);
init_smb2_neg_rsp(work); init_smb2_neg_rsp(work);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment