diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-08-08 13:56:51 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2013-08-12 16:48:46 +1200 |
commit | ae6166a3c10d3ce9f9a0d08dcbfcc8afd72ca461 (patch) | |
tree | 3eadbf0b231becd27d20d0c3925d7e8445b8cea7 /source4/librpc/rpc/dcerpc_sock.c | |
parent | b055b3118d9c2159e9d5a42830328cfc103f9555 (diff) | |
download | samba-ae6166a3c10d3ce9f9a0d08dcbfcc8afd72ca461.tar.gz samba-ae6166a3c10d3ce9f9a0d08dcbfcc8afd72ca461.tar.bz2 samba-ae6166a3c10d3ce9f9a0d08dcbfcc8afd72ca461.zip |
s4:librpc: avoid talloc_reference() in dcerpc_epm_map_binding_send()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/librpc/rpc/dcerpc_sock.c')
-rw-r--r-- | source4/librpc/rpc/dcerpc_sock.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c index 58fca4ce37..a911dba825 100644 --- a/source4/librpc/rpc/dcerpc_sock.c +++ b/source4/librpc/rpc/dcerpc_sock.c @@ -327,12 +327,15 @@ static struct composite_context *dcerpc_pipe_open_socket_send(TALLOC_CTX *mem_ct s->conn = cn; s->transport = transport; if (localaddr) { - s->localaddr = talloc_reference(c, localaddr); + s->localaddr = socket_address_copy(s, localaddr); if (composite_nomem(s->localaddr, c)) return c; } - s->server = talloc_reference(c, server); + s->server = socket_address_copy(s, server); if (composite_nomem(s->server, c)) return c; - s->target_hostname = talloc_reference(s, target_hostname); + if (target_hostname) { + s->target_hostname = talloc_strdup(s, target_hostname); + if (composite_nomem(s->target_hostname, c)) return c; + } s->sock = talloc(cn, struct sock_private); if (composite_nomem(s->sock, c)) return c; @@ -342,7 +345,10 @@ static struct composite_context *dcerpc_pipe_open_socket_send(TALLOC_CTX *mem_ct talloc_steal(s->sock, s->socket_ctx); - s->sock->path = talloc_reference(s->sock, full_path); + if (full_path != NULL) { + s->sock->path = talloc_strdup(s->sock, full_path); + if (composite_nomem(s->sock->path, c)) return c; + } conn_req = socket_connect_send(s->socket_ctx, s->localaddr, s->server, 0, c->event_ctx); |