|
@@ -922,6 +922,12 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree,
|
|
|
if (tcon && tcon->bad_network_name)
|
|
|
return -ENOENT;
|
|
|
|
|
|
+ if ((tcon->seal) &&
|
|
|
+ ((ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION) == 0)) {
|
|
|
+ cifs_dbg(VFS, "encryption requested but no server support");
|
|
|
+ return -EOPNOTSUPP;
|
|
|
+ }
|
|
|
+
|
|
|
unc_path = kmalloc(MAX_SHARENAME_LENGTH * 2, GFP_KERNEL);
|
|
|
if (unc_path == NULL)
|
|
|
return -ENOMEM;
|
|
@@ -1001,6 +1007,8 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree,
|
|
|
((tcon->share_flags & SHI1005_FLAGS_DFS) == 0))
|
|
|
cifs_dbg(VFS, "DFS capability contradicts DFS flag\n");
|
|
|
init_copy_chunk_defaults(tcon);
|
|
|
+ if (tcon->share_flags & SHI1005_FLAGS_ENCRYPT_DATA)
|
|
|
+ cifs_dbg(VFS, "Encrypted shares not supported");
|
|
|
if (tcon->ses->server->ops->validate_negotiate)
|
|
|
rc = tcon->ses->server->ops->validate_negotiate(xid, tcon);
|
|
|
tcon_exit:
|