Commit 68abaffa authored by Jeff Layton's avatar Jeff Layton Committed by Steve French

cifs: simplify SMB header check routine

...just cleanup. There should be no behavior change.
Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Reviewed-by: default avatarPavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 2db7c581
...@@ -381,29 +381,31 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ , ...@@ -381,29 +381,31 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ ,
} }
static int static int
checkSMBhdr(struct smb_hdr *smb, __u16 mid) check_smb_hdr(struct smb_hdr *smb, __u16 mid)
{ {
/* Make sure that this really is an SMB, that it is a response, /* does it have the right SMB "signature" ? */
and that the message ids match */ if (*(__le32 *) smb->Protocol != cpu_to_le32(0x424d53ff)) {
if ((*(__le32 *) smb->Protocol == cpu_to_le32(0x424d53ff)) && cERROR(1, "Bad protocol string signature header 0x%x",
(mid == smb->Mid)) { *(unsigned int *)smb->Protocol);
return 1;
}
/* Make sure that message ids match */
if (mid != smb->Mid) {
cERROR(1, "Mids do not match. received=%u expected=%u",
smb->Mid, mid);
return 1;
}
/* if it's a response then accept */
if (smb->Flags & SMBFLG_RESPONSE) if (smb->Flags & SMBFLG_RESPONSE)
return 0; return 0;
else {
/* only one valid case where server sends us request */ /* only one valid case where server sends us request */
if (smb->Command == SMB_COM_LOCKING_ANDX) if (smb->Command == SMB_COM_LOCKING_ANDX)
return 0; return 0;
else
cERROR(1, "Received Request not response"); cERROR(1, "Server sent request, not response. mid=%u", smb->Mid);
}
} else { /* bad signature or mid */
if (*(__le32 *) smb->Protocol != cpu_to_le32(0x424d53ff))
cERROR(1, "Bad protocol string signature header %x",
*(unsigned int *) smb->Protocol);
if (mid != smb->Mid)
cERROR(1, "Mids do not match");
}
cERROR(1, "bad smb detected. The Mid=%d", smb->Mid);
return 1; return 1;
} }
...@@ -448,7 +450,7 @@ checkSMB(struct smb_hdr *smb, __u16 mid, unsigned int length) ...@@ -448,7 +450,7 @@ checkSMB(struct smb_hdr *smb, __u16 mid, unsigned int length)
return 1; return 1;
} }
if (checkSMBhdr(smb, mid)) if (check_smb_hdr(smb, mid))
return 1; return 1;
clc_len = smbCalcSize_LE(smb); clc_len = smbCalcSize_LE(smb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment