summaryrefslogtreecommitdiff
path: root/fs/smb/client/smb1transport.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/smb/client/smb1transport.c')
-rw-r--r--fs/smb/client/smb1transport.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/smb/client/smb1transport.c b/fs/smb/client/smb1transport.c
index 0b8b852cfc0d..38d6d5538b96 100644
--- a/fs/smb/client/smb1transport.c
+++ b/fs/smb/client/smb1transport.c
@@ -29,7 +29,6 @@
#include "cifs_debug.h"
#include "smbdirect.h"
#include "compress.h"
-#include "cifs_debug.h"
/* Max number of iovectors we can use off the stack when sending requests. */
#define CIFS_MAX_IOV_SIZE 8
@@ -170,12 +169,18 @@ cifs_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server,
iov[0].iov_base = mid->resp_buf;
iov[0].iov_len = len;
- /* FIXME: add code to kill session */
+
rc = cifs_verify_signature(&rqst, server,
mid->sequence_number);
- if (rc)
+ if (rc) {
cifs_server_dbg(VFS, "SMB signature verification returned error = %d\n",
rc);
+
+ if (!(server->sec_mode & SECMODE_SIGN_REQUIRED)) {
+ cifs_reconnect(server, true);
+ return rc;
+ }
+ }
}
/* BB special case reconnect tid and uid here? */