diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-06-21 16:13:14 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2010-06-21 16:16:15 +0200 |
commit | 67a24fe9333836e4d33c167ea01f2efdc005bacd (patch) | |
tree | 1671bc30725ebd2523bd2c9b58fd57a5166e79b5 /libcli | |
parent | e9e80a36e461a0d07cdc9d1be27e60624133b096 (diff) | |
download | samba-67a24fe9333836e4d33c167ea01f2efdc005bacd.tar.gz samba-67a24fe9333836e4d33c167ea01f2efdc005bacd.tar.bz2 samba-67a24fe9333836e4d33c167ea01f2efdc005bacd.zip |
libcli/named_pipe_auth: fix memory handling for temporary data
In a tevent_req based function tevent_req_create() should be the first
function! If it fails it's the only reason, why the function
could every return NULL.
And all temporary data belongs to 'state' and gets free'ed by
tevent_req_received() in the _recv function.
metze
Diffstat (limited to 'libcli')
-rw-r--r-- | libcli/named_pipe_auth/npa_tstream.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libcli/named_pipe_auth/npa_tstream.c b/libcli/named_pipe_auth/npa_tstream.c index 351858408c..59d3a97dc0 100644 --- a/libcli/named_pipe_auth/npa_tstream.c +++ b/libcli/named_pipe_auth/npa_tstream.c @@ -73,11 +73,7 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx, struct tevent_req *subreq; int ret; enum ndr_err_code ndr_err; - char *lower_case_npipe = strlower_talloc(mem_ctx, npipe); - - if (!lower_case_npipe) { - return NULL; - } + char *lower_case_npipe; req = tevent_req_create(mem_ctx, &state, struct tstream_npa_connect_state); @@ -87,6 +83,11 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx, state->caller.ev = ev; + lower_case_npipe = strlower_talloc(state, npipe); + if (tevent_req_nomem(lower_case_npipe, req)) { + goto post; + } + state->unix_path = talloc_asprintf(state, "%s/%s", directory, lower_case_npipe); |