diff options
Diffstat (limited to 'source3/smbd/process.c')
-rw-r--r-- | source3/smbd/process.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 99898141db..8b3e85f4b4 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1125,7 +1125,7 @@ static void construct_reply(char *inbuf, int size) file_chain_reset(); reset_chain_p(); - if (!(req = talloc(tmp_talloc_ctx(), struct smb_request))) { + if (!(req = talloc(talloc_tos(), struct smb_request))) { smb_panic("could not allocate smb_request"); } init_smb_request(req, (uint8 *)inbuf); @@ -1346,7 +1346,7 @@ void chain_reply(struct smb_request *req) DEBUG(3,("Chained message\n")); show_msg(inbuf2); - if (!(req2 = talloc(tmp_talloc_ctx(), struct smb_request))) { + if (!(req2 = talloc(talloc_tos(), struct smb_request))) { smb_panic("could not allocate smb_request"); } init_smb_request(req2, (uint8 *)inbuf2); @@ -1634,13 +1634,10 @@ void smbd_process(void) int num_echos; char *inbuf; size_t inbuf_len; + TALLOC_CTX *frame = talloc_stackframe(); errno = 0; - /* free up temporary memory */ - lp_TALLOC_FREE(); - main_loop_TALLOC_FREE(); - /* Did someone ask for immediate checks on things like blocking locks ? */ if (select_timeout == 0) { if(!timeout_processing(&select_timeout, @@ -1713,5 +1710,6 @@ void smbd_process(void) change_to_root_user(); check_log_size(); } + TALLOC_FREE(frame); } } |