summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2021-01-12 09:26:24 +0100
committerVolker Lendecke <vl@samba.org>2021-01-14 13:29:35 +0000
commit33f7aac8719a5de9a3dc01cda70b190c1a824a53 (patch)
treea49a63271d411dd3f200d53ac18f73cd307e4304 /source3
parent51f5631bbb3801d320127ea4a90403cb074c0095 (diff)
downloadsamba-33f7aac8719a5de9a3dc01cda70b190c1a824a53.tar.gz
rpc_server: Make dcerpc_ncacn_accept() take tsocket_address **
dcerpc_ncacn_accept() talloc_move's the addresses away from the caller's talloc hierarchy. Don't leave pointers around in the caller. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Samuel Cabrero <scabrero@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/printing/spoolssd.c4
-rw-r--r--source3/rpc_server/lsasd.c4
-rw-r--r--source3/rpc_server/mdssd.c4
-rw-r--r--source3/rpc_server/rpc_server.c22
-rw-r--r--source3/rpc_server/rpc_server.h4
5 files changed, 21 insertions, 17 deletions
diff --git a/source3/printing/spoolssd.c b/source3/printing/spoolssd.c
index 8aef363fa91..67cd20684fd 100644
--- a/source3/printing/spoolssd.c
+++ b/source3/printing/spoolssd.c
@@ -430,8 +430,8 @@ static void spoolss_handle_client(struct tevent_req *req)
data->msg_ctx,
data->dce_ctx,
ep,
- cli_addr,
- srv_addr,
+ &cli_addr,
+ &srv_addr,
sd,
spoolss_client_terminated,
data);
diff --git a/source3/rpc_server/lsasd.c b/source3/rpc_server/lsasd.c
index a5cc1dad17d..93317688ce8 100644
--- a/source3/rpc_server/lsasd.c
+++ b/source3/rpc_server/lsasd.c
@@ -439,8 +439,8 @@ static void lsasd_handle_client(struct tevent_req *req)
data->msg_ctx,
data->dce_ctx,
ep,
- cli_addr,
- srv_addr,
+ &cli_addr,
+ &srv_addr,
sd,
term_fn,
term_fn_data);
diff --git a/source3/rpc_server/mdssd.c b/source3/rpc_server/mdssd.c
index 0c44b010aae..aec5c082b0b 100644
--- a/source3/rpc_server/mdssd.c
+++ b/source3/rpc_server/mdssd.c
@@ -389,8 +389,8 @@ static void mdssd_handle_client(struct tevent_req *req)
data->msg_ctx,
data->dce_ctx,
ep,
- cli_addr,
- srv_addr,
+ &cli_addr,
+ &srv_addr,
sd,
term_fn,
term_fn_data);
diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c
index 497a7e43374..e16078832db 100644
--- a/source3/rpc_server/rpc_server.c
+++ b/source3/rpc_server/rpc_server.c
@@ -435,8 +435,8 @@ static void dcesrv_ncacn_ip_tcp_listener(struct tevent_context *ev,
state->msg_ctx,
state->dce_ctx,
state->endpoint,
- cli_addr,
- srv_addr,
+ &cli_addr,
+ &srv_addr,
s,
state->termination_fn,
state->termination_data);
@@ -660,7 +660,9 @@ static void dcesrv_ncalrpc_listener(struct tevent_context *ev,
state->msg_ctx,
state->dce_ctx,
state->endpoint,
- cli_addr, srv_addr, sd,
+ &cli_addr,
+ &srv_addr,
+ sd,
state->termination_fn,
state->termination_data);
}
@@ -717,8 +719,8 @@ void dcerpc_ncacn_accept(struct tevent_context *ev_ctx,
struct messaging_context *msg_ctx,
struct dcesrv_context *dce_ctx,
struct dcesrv_endpoint *e,
- struct tsocket_address *cli_addr,
- struct tsocket_address *srv_addr,
+ struct tsocket_address **cli_addr,
+ struct tsocket_address **srv_addr,
int s,
dcerpc_ncacn_termination_fn termination_fn,
void *termination_data)
@@ -748,8 +750,9 @@ void dcerpc_ncacn_accept(struct tevent_context *ev_ctx,
ncacn_conn->sock = s;
- if (cli_addr != NULL) {
- ncacn_conn->remote_client_addr = talloc_move(ncacn_conn, &cli_addr);
+ if ((cli_addr != NULL) && (*cli_addr != NULL)) {
+ ncacn_conn->remote_client_addr = talloc_move(
+ ncacn_conn, cli_addr);
if (tsocket_address_is_inet(ncacn_conn->remote_client_addr, "ip")) {
ncacn_conn->remote_client_name =
@@ -769,8 +772,9 @@ void dcerpc_ncacn_accept(struct tevent_context *ev_ctx,
}
}
- if (srv_addr != NULL) {
- ncacn_conn->local_server_addr = talloc_move(ncacn_conn, &srv_addr);
+ if ((srv_addr != NULL) && (*srv_addr != NULL)) {
+ ncacn_conn->local_server_addr = talloc_move(
+ ncacn_conn, srv_addr);
if (tsocket_address_is_inet(ncacn_conn->local_server_addr, "ip")) {
ncacn_conn->local_server_name =
diff --git a/source3/rpc_server/rpc_server.h b/source3/rpc_server/rpc_server.h
index 4a3a5dae4bc..4a716b9bed5 100644
--- a/source3/rpc_server/rpc_server.h
+++ b/source3/rpc_server/rpc_server.h
@@ -98,8 +98,8 @@ void dcerpc_ncacn_accept(struct tevent_context *ev_ctx,
struct messaging_context *msg_ctx,
struct dcesrv_context *dce_ctx,
struct dcesrv_endpoint *e,
- struct tsocket_address *cli_addr,
- struct tsocket_address *srv_addr,
+ struct tsocket_address **cli_addr,
+ struct tsocket_address **srv_addr,
int s,
dcerpc_ncacn_termination_fn termination_fn,
void *termination_data);