diff options
| author | Jeff Layton <jlayton@redhat.com> | 2011-10-11 06:41:32 -0400 | 
|---|---|---|
| committer | Steve French <smfrench@gmail.com> | 2011-10-12 23:41:41 -0500 | 
| commit | 826a95e4a33f3e9bfa0d31ab769d5b01130f7111 (patch) | |
| tree | ca1345ef9b0887b1b2985e7fbbf19f80eb4a5e61 /fs/cifs/transport.c | |
| parent | 376b43f41c8b9315f7efdf085d214b6024337381 (diff) | |
| download | linux-826a95e4a33f3e9bfa0d31ab769d5b01130f7111.tar.bz2 | |
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 10ca6b2c26b7..33a3fbf3a3a5 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");  	} |