summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-07-12 14:15:06 +0000
committerStefan Metzmacher <metze@samba.org>2006-07-12 14:15:06 +0000
commit11025631f59f57af5e94996e267a2290c440d819 (patch)
treef55c0a8ece53315012c0f25d53b87c711a9894c7
parent09fa8ae2f8b3f235a8c06fb4f2ac403bb6bf5428 (diff)
downloadsamba-11025631f59f57af5e94996e267a2290c440d819.tar.gz
samba-11025631f59f57af5e94996e267a2290c440d819.tar.xz
samba-11025631f59f57af5e94996e267a2290c440d819.zip
r16979: - ntcancel should compare TID,UID,MID and PID
- don't return ntcancel error, as we don't know how signing works for them metze
-rw-r--r--source/smb_server/smb/reply.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/smb_server/smb/reply.c b/source/smb_server/smb/reply.c
index c79ad15ea8c..256abc0c7ca 100644
--- a/source/smb_server/smb/reply.c
+++ b/source/smb_server/smb/reply.c
@@ -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);
}
/*