Commit 9587fcff authored by Jeff Layton's avatar Jeff Layton Committed by Steve French

cifs: fix length vs. total_read confusion in cifs_demultiplex_thread

length at this point is the length returned by the last kernel_recvmsg
call. total_read is the length of all of the data read so far. length
is more or less meaningless at this point, so use total_read for
everything.
Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Reviewed-by: default avatarPavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent afe8a887
...@@ -578,12 +578,12 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server) ...@@ -578,12 +578,12 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
else if (reconnect == 1) else if (reconnect == 1)
continue; continue;
length += 4; /* account for rfc1002 hdr */ total_read += 4; /* account for rfc1002 hdr */
dump_smb(smb_buffer, total_read);
dump_smb(smb_buffer, length); if (checkSMB(smb_buffer, smb_buffer->Mid, total_read)) {
if (checkSMB(smb_buffer, smb_buffer->Mid, total_read+4)) { cifs_dump_mem("Bad SMB: ", smb_buffer,
cifs_dump_mem("Bad SMB: ", smb_buffer, 48); total_read < 48 ? total_read : 48);
continue; continue;
} }
......
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