summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/notify.c17
-rw-r--r--source3/smbd/nttrans.c2
2 files changed, 7 insertions, 12 deletions
diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c
index 8474ca6446..144af093cf 100644
--- a/source3/smbd/notify.c
+++ b/source3/smbd/notify.c
@@ -154,9 +154,8 @@ static void change_notify_reply_packet(const uint8 *request_buf,
void change_notify_reply(const uint8 *request_buf, uint32 max_param,
struct notify_change_buf *notify_buf)
{
- char *outbuf = NULL;
prs_struct ps;
- size_t buflen;
+ struct smb_request *req = NULL;
if (notify_buf->num_changes == -1) {
change_notify_reply_packet(request_buf, NT_STATUS_OK);
@@ -176,22 +175,18 @@ void change_notify_reply(const uint8 *request_buf, uint32 max_param,
goto done;
}
- buflen = smb_size+38+prs_offset(&ps) + 4 /* padding */;
-
- if (!(outbuf = SMB_MALLOC_ARRAY(char, buflen))) {
+ if (!(req = talloc(tmp_talloc_ctx(), struct smb_request))) {
change_notify_reply_packet(request_buf, NT_STATUS_NO_MEMORY);
goto done;
}
- construct_reply_common((char *)request_buf, outbuf);
+ init_smb_request(req, request_buf);
- if (send_nt_replies((char *)request_buf, outbuf, buflen, NT_STATUS_OK, prs_data_p(&ps),
- prs_offset(&ps), NULL, 0) == -1) {
- exit_server("change_notify_reply_packet: send_smb failed.");
- }
+ send_nt_replies_new(req, NT_STATUS_OK, prs_data_p(&ps),
+ prs_offset(&ps), NULL, 0);
done:
- SAFE_FREE(outbuf);
+ TALLOC_FREE(req);
prs_mem_free(&ps);
TALLOC_FREE(notify_buf->changes);
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 401fdca929..881378c924 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -67,7 +67,7 @@ static char *nttrans_realloc(char **ptr, size_t size)
HACK ! Always assumes smb_setup field is zero.
****************************************************************************/
-int send_nt_replies(const char *inbuf,
+static int send_nt_replies(const char *inbuf,
char *outbuf,
int bufsize,
NTSTATUS nt_error,