diff options
author | Volker Lendecke <vl@samba.org> | 2010-02-20 09:53:58 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2010-02-22 23:23:18 +0100 |
commit | d122bfc064a0265b1e08dd52bbce61caac1d6a6b (patch) | |
tree | 9b3f7d7526c81e1d089f187ed559244df843f9dd /source3/libsmb/async_smb.c | |
parent | 91bf841c2e2997f7b39e3e757d3b88054829ed62 (diff) | |
download | samba-d122bfc064a0265b1e08dd52bbce61caac1d6a6b.tar.gz samba-d122bfc064a0265b1e08dd52bbce61caac1d6a6b.tar.bz2 samba-d122bfc064a0265b1e08dd52bbce61caac1d6a6b.zip |
s3: Add a talloc_move for the inbuf to cli_smb_recv
Diffstat (limited to 'source3/libsmb/async_smb.c')
-rw-r--r-- | source3/libsmb/async_smb.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 59226e1ecb..9f92ae7012 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -755,8 +755,9 @@ static void cli_smb_received(struct tevent_req *subreq) } } -NTSTATUS cli_smb_recv(struct tevent_req *req, uint8_t min_wct, - uint8_t *pwct, uint16_t **pvwv, +NTSTATUS cli_smb_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, uint8_t **pinbuf, + uint8_t min_wct, uint8_t *pwct, uint16_t **pvwv, uint32_t *pnum_bytes, uint8_t **pbytes) { struct cli_smb_state *state = tevent_req_data( @@ -868,6 +869,9 @@ no_err: if (pbytes != NULL) { *pbytes = (uint8_t *)state->inbuf + bytes_offset + 2; } + if ((mem_ctx != NULL) && (pinbuf != NULL)) { + *pinbuf = talloc_move(mem_ctx, &state->inbuf); + } return status; } @@ -1055,7 +1059,8 @@ static void cli_smb_oplock_break_waiter_done(struct tevent_req *subreq) uint8_t *bytes; NTSTATUS status; - status = cli_smb_recv(subreq, 8, &wct, &vwv, &num_bytes, &bytes); + status = cli_smb_recv(subreq, NULL, NULL, 8, &wct, &vwv, + &num_bytes, &bytes); if (!NT_STATUS_IS_OK(status)) { TALLOC_FREE(subreq); tevent_req_nterror(req, status); |