summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-11-01 16:24:42 +0100
committerVolker Lendecke <vl@samba.org>2008-11-01 19:41:07 +0100
commit7f9d6f80efbc211977b13ece80fff6adbea929ac (patch)
tree1660eb379144ff05ebb8d65b369cdf80b5bf5d45 /source3/smbd/process.c
parent8637716b4b7b75a289e22141c5761c4850da3f5d (diff)
downloadsamba-7f9d6f80efbc211977b13ece80fff6adbea929ac.tar.gz
samba-7f9d6f80efbc211977b13ece80fff6adbea929ac.tar.bz2
samba-7f9d6f80efbc211977b13ece80fff6adbea929ac.zip
Add a "buflen" struct member to smb_request
This removes some explicit inbuf references and also removes a pointless check in reply_echo. The buflen can never be more than 64k, this is just a 16 bit value.
Diffstat (limited to 'source3/smbd/process.c')
-rw-r--r--source3/smbd/process.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 4d415b2d27..8e1add3fb1 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -375,6 +375,7 @@ void init_smb_request(struct smb_request *req,
req->vuid = SVAL(inbuf, smb_uid);
req->tid = SVAL(inbuf, smb_tid);
req->wct = CVAL(inbuf, smb_wct);
+ req->buflen = smb_buflen(inbuf);
req->unread_bytes = unread_bytes;
req->encrypted = encrypted;
req->conn = conn_find(req->tid);
@@ -388,10 +389,10 @@ void init_smb_request(struct smb_request *req,
exit_server_cleanly("Invalid SMB request");
}
/* Ensure bcc is correct. */
- if (((uint8 *)smb_buf(inbuf)) + smb_buflen(inbuf) > inbuf + req_size) {
+ if (((uint8 *)smb_buf(inbuf)) + req->buflen > inbuf + req_size) {
DEBUG(0,("init_smb_request: invalid bcc number %u "
"(wct = %u, size %u)\n",
- (unsigned int)smb_buflen(inbuf),
+ (unsigned int)req->buflen,
(unsigned int)req->wct,
(unsigned int)req_size));
exit_server_cleanly("Invalid SMB request");