summaryrefslogtreecommitdiff
path: root/source3/smbd/notify.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-08-17 10:05:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:29:53 -0500
commitf65041cbf18d9e3778e549179edb3e134a1608b1 (patch)
tree12ee795a6e5712315c3501497cfe5f80e3c143ca /source3/smbd/notify.c
parented4b40e9cbf8c3f67ca2736eacba5bfd891200f1 (diff)
downloadsamba-f65041cbf18d9e3778e549179edb3e134a1608b1.tar.gz
samba-f65041cbf18d9e3778e549179edb3e134a1608b1.tar.bz2
samba-f65041cbf18d9e3778e549179edb3e134a1608b1.zip
r24512: Fix RAW-NOTIFY
With the inbuf consistency checks we have to more correctly fake the inbuf (This used to be commit 2b8ecda30fc57bb4027b7208d22d85d213074158)
Diffstat (limited to 'source3/smbd/notify.c')
-rw-r--r--source3/smbd/notify.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c
index cf64acae07..0bdf466092 100644
--- a/source3/smbd/notify.c
+++ b/source3/smbd/notify.c
@@ -156,6 +156,7 @@ void change_notify_reply(const uint8 *request_buf, uint32 max_param,
{
prs_struct ps;
struct smb_request *req = NULL;
+ uint8 tmp_request[smb_size];
if (notify_buf->num_changes == -1) {
change_notify_reply_packet(request_buf, NT_STATUS_OK);
@@ -180,9 +181,16 @@ void change_notify_reply(const uint8 *request_buf, uint32 max_param,
goto done;
}
- smb_setlen(NULL, request_buf, smb_size);
+ memcpy(tmp_request, request_buf, smb_size);
- init_smb_request(req, request_buf);
+ /*
+ * We're only interested in the header fields here
+ */
+
+ smb_setlen(NULL, (char *)tmp_request, smb_size);
+ SCVAL(tmp_request, smb_wct, 0);
+
+ init_smb_request(req, tmp_request);
send_nt_replies(req, NT_STATUS_OK, prs_data_p(&ps),
prs_offset(&ps), NULL, 0);