diff --git a/adsbus/exec.c b/adsbus/exec.c index fd54085..850def6 100644 --- a/adsbus/exec.c +++ b/adsbus/exec.c @@ -39,6 +39,7 @@ static void exec_del(struct exec *exec) { kill(exec->child, SIGTERM); assert(waitpid(exec->child, NULL, 0) == exec->child); } + list_del(&exec->exec_list); free(exec->command); free(exec); } diff --git a/adsbus/incoming.c b/adsbus/incoming.c index 6ee0c54..1762ae0 100644 --- a/adsbus/incoming.c +++ b/adsbus/incoming.c @@ -78,6 +78,7 @@ static void incoming_del(struct incoming *incoming) { if (incoming->peer.fd >= 0) { assert(!close(incoming->peer.fd)); } + list_del(&incoming->incoming_list); free(incoming->node); free(incoming->service); free(incoming); diff --git a/adsbus/outgoing.c b/adsbus/outgoing.c index 9f30c40..4649d2c 100644 --- a/adsbus/outgoing.c +++ b/adsbus/outgoing.c @@ -146,6 +146,7 @@ static void outgoing_del(struct outgoing *outgoing) { if (outgoing->peer.fd >= 0) { assert(!close(outgoing->peer.fd)); } + list_del(&outgoing->outgoing_list); free(outgoing->node); free(outgoing->service); free(outgoing);