From a6296bad87ac16cb0a39d35aa8cf0db2f85ec0d3 Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Mon, 20 Nov 2017 11:52:55 +1100 Subject: [PATCH] ctdb-common: Do not use sock->req outside sock_socket functions Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- ctdb/common/sock_daemon.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ctdb/common/sock_daemon.c b/ctdb/common/sock_daemon.c index bbeff537103..a41a5d5a7ea 100644 --- a/ctdb/common/sock_daemon.c +++ b/ctdb/common/sock_daemon.c @@ -278,6 +278,8 @@ static int sock_socket_init(TALLOC_CTX *mem_ctx, const char *sockpath, static int sock_socket_destructor(struct sock_socket *sock) { + TALLOC_FREE(sock->req); + if (sock->fd != -1) { close(sock->fd); sock->fd = -1; @@ -331,6 +333,8 @@ static struct tevent_req *sock_socket_start_send(TALLOC_CTX *mem_ctx, } tevent_req_set_callback(subreq, sock_socket_start_new_client, req); + sock->req = req; + return req; } @@ -599,8 +603,6 @@ struct tevent_req *sock_daemon_run_send(TALLOC_CTX *mem_ctx, } tevent_req_set_callback(subreq, sock_daemon_run_socket_fail, req); - - sock->req = subreq; } if (pid_watch > 1) { @@ -693,7 +695,6 @@ static void sock_daemon_run_shutdown(struct tevent_req *req) while ((sock = sockd->socket_list) != NULL) { DLIST_REMOVE(sockd->socket_list, sock); - TALLOC_FREE(sock->req); TALLOC_FREE(sock); } -- 2.11.4.GIT