Clean up two declarations of blob_len

- Eliminate double declaration of variable blob_len
- Modify function build_ntlmssp_auth_blob to return error code
  as well as length of the blob.

Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Reviewed-by: Jeff Layton <jlayton@samba.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Shirish Pargaonkar 2010-10-19 11:47:52 -05:00 committed by Steve French
parent b33879aa83
commit 89f150f401

View File

@ -464,6 +464,7 @@ static void build_ntlmssp_negotiate_blob(unsigned char *pbuffer,
maximum possible size is fixed and small, making this approach cleaner. maximum possible size is fixed and small, making this approach cleaner.
This function returns the length of the data in the blob */ This function returns the length of the data in the blob */
static int build_ntlmssp_auth_blob(unsigned char *pbuffer, static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
u16 *buflen,
struct cifsSesInfo *ses, struct cifsSesInfo *ses,
const struct nls_table *nls_cp) const struct nls_table *nls_cp)
{ {
@ -558,7 +559,8 @@ static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
sec_blob->SessionKey.MaximumLength = 0; sec_blob->SessionKey.MaximumLength = 0;
setup_ntlmv2_ret: setup_ntlmv2_ret:
return tmp - pbuffer; *buflen = tmp - pbuffer;
return rc;
} }
@ -591,7 +593,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses,
int bytes_remaining; int bytes_remaining;
struct key *spnego_key = NULL; struct key *spnego_key = NULL;
__le32 phase = NtLmNegotiate; /* NTLMSSP, if needed, is multistage */ __le32 phase = NtLmNegotiate; /* NTLMSSP, if needed, is multistage */
int blob_len; u16 blob_len;
char *ntlmsspblob = NULL; char *ntlmsspblob = NULL;
if (ses == NULL) if (ses == NULL)
@ -848,8 +850,10 @@ ssetup_ntlmssp_authenticate:
goto ssetup_exit; goto ssetup_exit;
} }
blob_len = build_ntlmssp_auth_blob(ntlmsspblob, rc = build_ntlmssp_auth_blob(ntlmsspblob,
ses, nls_cp); &blob_len, ses, nls_cp);
if (rc)
goto ssetup_exit;
iov[1].iov_len = blob_len; iov[1].iov_len = blob_len;
iov[1].iov_base = ntlmsspblob; iov[1].iov_base = ntlmsspblob;
pSMB->req.SecurityBlobLength = pSMB->req.SecurityBlobLength =
@ -927,7 +931,6 @@ ssetup_ntlmssp_authenticate:
bcc_ptr = pByteArea(smb_buf); bcc_ptr = pByteArea(smb_buf);
if (smb_buf->WordCount == 4) { if (smb_buf->WordCount == 4) {
__u16 blob_len;
blob_len = le16_to_cpu(pSMB->resp.SecurityBlobLength); blob_len = le16_to_cpu(pSMB->resp.SecurityBlobLength);
if (blob_len > bytes_remaining) { if (blob_len > bytes_remaining) {
cERROR(1, "bad security blob length %d", blob_len); cERROR(1, "bad security blob length %d", blob_len);