ctdb-common: Fix memory leak in run_proc master
authorAmitay Isaacs <amitay@gmail.com>
Mon, 13 May 2019 07:07:59 +0000 (17:07 +1000)
committerAmitay Isaacs <amitay@gmail.com>
Tue, 14 May 2019 01:27:03 +0000 (11:27 +1000)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
ctdb/common/run_proc.c

index 037b6d9..0c3c1de 100644 (file)
@@ -302,13 +302,15 @@ again:
                proc->fd = -1;
        }
 
+       DLIST_REMOVE(run_ctx->plist, proc);
+
        /* Active run_proc request */
        if (proc->req != NULL) {
                run_proc_done(proc->req);
+       } else {
+               talloc_free(proc);
        }
 
-       DLIST_REMOVE(run_ctx->plist, proc);
-
        goto again;
 }
 
@@ -426,6 +428,7 @@ static void run_proc_done(struct tevent_req *req)
        if (state->proc->output != NULL) {
                state->output = talloc_steal(state, state->proc->output);
        }
+       talloc_steal(state, state->proc);
 
        tevent_req_done(req);
 }