Author: metze
Date: 2006-07-12 14:15:06 +0000 (Wed, 12 Jul 2006)
New Revision: 16979

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16979

Log:
- ntcancel should compare TID,UID,MID and PID
- don't return ntcancel error, as we don't know how signing works
  for them

metze
Modified:
   branches/SAMBA_4_0/source/smb_server/smb/reply.c


Changeset:
Modified: branches/SAMBA_4_0/source/smb_server/smb/reply.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/smb/reply.c    2006-07-12 11:17:20 UTC 
(rev 16978)
+++ branches/SAMBA_4_0/source/smb_server/smb/reply.c    2006-07-12 14:15:06 UTC 
(rev 16979)
@@ -2197,12 +2197,15 @@
 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 @@
                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);
 }
 
 /*

Reply via email to