diff options
author | Jeff Layton <jlayton@redhat.com> | 2011-10-11 10:41:32 (GMT) |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2011-10-13 04:41:41 (GMT) |
commit | 826a95e4a33f3e9bfa0d31ab769d5b01130f7111 (patch) | |
tree | ca1345ef9b0887b1b2985e7fbbf19f80eb4a5e61 /fs/cifs/transport.c | |
parent | 376b43f41c8b9315f7efdf085d214b6024337381 (diff) | |
download | linux-826a95e4a33f3e9bfa0d31ab769d5b01130f7111.tar.xz |
cifs: consolidate signature generating code
We have two versions of signature generating code. A vectorized and
non-vectorized version. Eliminate a large chunk of cut-and-paste
code by turning the non-vectorized version into a wrapper around the
vectorized one.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/transport.c')
-rw-r--r-- | fs/cifs/transport.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 10ca6b2..33a3fbf 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c @@ -496,13 +496,18 @@ int cifs_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, bool log_error) { - dump_smb(mid->resp_buf, - min_t(u32, 92, be32_to_cpu(mid->resp_buf->smb_buf_length))); + unsigned int len = be32_to_cpu(mid->resp_buf->smb_buf_length) + 4; + + dump_smb(mid->resp_buf, min_t(u32, 92, len)); /* convert the length into a more usable form */ if (server->sec_mode & (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) { + struct kvec iov; + + iov.iov_base = mid->resp_buf; + iov.iov_len = len; /* FIXME: add code to kill session */ - if (cifs_verify_signature(mid->resp_buf, server, + if (cifs_verify_signature(&iov, 1, server, mid->sequence_number + 1) != 0) cERROR(1, "Unexpected SMB signature"); } |