Remove some direct inbuf references by adding smbreq_bufrem
authorVolker Lendecke <vl@samba.org>
Sun, 2 Nov 2008 00:21:53 +0000 (01:21 +0100)
committerVolker Lendecke <vl@samba.org>
Sun, 2 Nov 2008 08:22:40 +0000 (09:22 +0100)
source3/include/smb_macros.h
source3/include/srvstr.h
source3/smbd/message.c
source3/smbd/negprot.c
source3/smbd/reply.c
source3/smbd/sesssetup.c

index 89d8994eaf6aa3a604556e1f704c26a704560d0b..46ca2365533967c72ced88901b91ea5394dffa9e 100644 (file)
 
 /* the remaining number of bytes in smb buffer 'buf' from pointer 'p'. */
 #define smb_bufrem(buf, p) (smb_buflen(buf)-PTR_DIFF(p, smb_buf(buf)))
+#define smbreq_bufrem(req, p) (req->buflen - PTR_DIFF(p, req->buf))
+
 
 /* Note that chain_size must be available as an extern int to this macro. */
 #define smb_offset(p,buf) (PTR_DIFF(p,buf+4) + chain_size)
index d2de6805d3cad8bc01feb993fd4afe05c3404541..7e7d8a2e92af9463c23ca0d5998259636978884f 100644 (file)
@@ -27,4 +27,4 @@
 
 #define srvstr_pull_req_talloc(ctx, req_, dest, src, flags) \
     pull_string_talloc(ctx, req_->inbuf, req_->flags2, dest, src, \
-                      smb_bufrem(req_->inbuf, src), flags)
+                      smbreq_bufrem(req_, src), flags)
index 347370e40c47490f65692802790d37e9ba399149..65eaeca777bc76493014bc7c3ab8352793354db4 100644 (file)
@@ -162,7 +162,7 @@ void reply_sends(struct smb_request *req)
        msg = p;
 
        len = SVAL(msg,0);
-       len = MIN(len, smb_bufrem(req->inbuf, msg+2));
+       len = MIN(len, smbreq_bufrem(req, msg+2));
 
        state->msg = talloc_array(state, char, len);
 
@@ -256,7 +256,7 @@ void reply_sendtxt(struct smb_request *req)
 
        old_len = talloc_get_size(smbd_msg_state->msg);
 
-       len = MIN(SVAL(msg, 0), smb_bufrem(req->inbuf, msg+2));
+       len = MIN(SVAL(msg, 0), smbreq_bufrem(req, msg+2));
 
        tmp = TALLOC_REALLOC_ARRAY(smbd_msg_state, smbd_msg_state->msg,
                                   char, old_len + len);
index 1fe0193e00113f5ad643ece855fff5fb60858000..fe168aad3ac0e7fe7c72a0de9972a47565deb122 100644 (file)
@@ -539,7 +539,7 @@ void reply_negprot(struct smb_request *req)
        num_cliprotos = 0;
        cliprotos = NULL;
 
-       while (smb_bufrem(req->inbuf, p) > 0) {
+       while (smbreq_bufrem(req, p) > 0) {
 
                char **tmp;
 
index f7165ff2175acac10c29f6d98ef9da6d8b5ae88c..ebd85bcd28a9468fbb3e518a7b152a11d683da78 100644 (file)
@@ -272,7 +272,7 @@ size_t srvstr_get_path_req_wcard(TALLOC_CTX *mem_ctx, struct smb_request *req,
                                 NTSTATUS *err, bool *contains_wcard)
 {
        return srvstr_get_path_wcard(mem_ctx, (char *)req->inbuf, req->flags2,
-                                    pp_dest, src, smb_bufrem(req->inbuf, src),
+                                    pp_dest, src, smbreq_bufrem(req, src),
                                     flags, err, contains_wcard);
 }
 
@@ -630,7 +630,7 @@ void reply_tcon_and_X(struct smb_request *req)
 
        p += srvstr_pull_talloc(ctx, req->inbuf, req->flags2,
                                &client_devicetype, p,
-                               MIN(6,smb_bufrem(req->inbuf, p)), STR_ASCII);
+                               MIN(6, smbreq_bufrem(req, p)), STR_ASCII);
 
        if (client_devicetype == NULL) {
                data_blob_clear_free(&password);
index 6981764e22908debe52be2ac5b8ebc2324286832..798c84ad6b835087ff8eff70f9c9158cc4b49b6c 100644 (file)
@@ -1195,7 +1195,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
                return;
        }
 
-       bufrem = smb_bufrem(req->inbuf, p);
+       bufrem = smbreq_bufrem(req, p);
        /* pull the spnego blob */
        blob1 = data_blob(p, MIN(bufrem, data_blob_len));
 
@@ -1529,7 +1529,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
 
                /* check for nasty tricks */
                if (passlen1 > MAX_PASS_LEN
-                   || passlen1 > smb_bufrem(req->inbuf, p)) {
+                   || passlen1 > smbreq_bufrem(req, p)) {
                        reply_nterror(req, nt_status_squash(
                                              NT_STATUS_INVALID_PARAMETER));
                        END_PROFILE(SMBsesssetupX);
@@ -1537,7 +1537,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
                }
 
                if (passlen2 > MAX_PASS_LEN
-                   || passlen2 > smb_bufrem(req->inbuf, p+passlen1)) {
+                   || passlen2 > smbreq_bufrem(req, p+passlen1)) {
                        reply_nterror(req, nt_status_squash(
                                              NT_STATUS_INVALID_PARAMETER));
                        END_PROFILE(SMBsesssetupX);