r16979: - ntcancel should compare TID,UID,MID and PID
authorStefan Metzmacher <metze@samba.org>
Wed, 12 Jul 2006 14:15:06 +0000 (14:15 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:10:06 +0000 (14:10 -0500)
- don't return ntcancel error, as we don't know how signing works
  for them

metze

source/smb_server/smb/reply.c

index c79ad15ea8c1eb5a73a2c0c66f4acd4d69e0fddd..256abc0c7ca54ba2bb1637894db2afabf86ba4b2 100644 (file)
@@ -2197,12 +2197,15 @@ void smbsrv_reply_ntcreate_and_X(struct smbsrv_request *req)
 void smbsrv_reply_ntcancel(struct smbsrv_request *req)
 {
        struct smbsrv_request *r;
+       uint16_t tid = SVAL(req->in.hdr,HDR_TID);
+       uint16_t uid = SVAL(req->in.hdr,HDR_UID);
        uint16_t mid = SVAL(req->in.hdr,HDR_MID);
        uint16_t pid = SVAL(req->in.hdr,HDR_PID);
 
        for (r = req->smb_conn->requests; r; r = r->next) {
+               if (tid != SVAL(r->in.hdr,HDR_TID)) continue;
+               if (uid != SVAL(r->in.hdr,HDR_UID)) continue;
                if (mid != SVAL(r->in.hdr,HDR_MID)) continue;
-               /* do we really need to check the PID? */
                if (pid != SVAL(r->in.hdr,HDR_PID)) continue;
 
                SMBSRV_CHECK(ntvfs_cancel(r->ntvfs));
@@ -2212,8 +2215,12 @@ void smbsrv_reply_ntcancel(struct smbsrv_request *req)
                return;
        }
 
-       /* TODO: workout the correct error code */
-       smbsrv_send_error(req, NT_STATUS_FOOBAR);
+       /* TODO: workout the correct error code,
+        *       until we know how the smb signing works
+        *       for ntcancel replies, don't send an error
+        */
+       /*smbsrv_send_error(req, NT_STATUS_FOOBAR);*/
+       talloc_free(req);
 }
 
 /*