diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-08-17 10:05:14 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:29:53 -0500 |
commit | f65041cbf18d9e3778e549179edb3e134a1608b1 (patch) | |
tree | 12ee795a6e5712315c3501497cfe5f80e3c143ca /source3/smbd | |
parent | ed4b40e9cbf8c3f67ca2736eacba5bfd891200f1 (diff) | |
download | samba-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')
-rw-r--r-- | source3/smbd/notify.c | 12 |
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); |