diff --git a/src/sink.c b/src/sink.c index 87aa9de9a..8e8e7e6d4 100644 --- a/src/sink.c +++ b/src/sink.c @@ -1146,6 +1146,9 @@ struct sink *sink_new_from_logsrv(struct logsrv *logsrv) return sink; error: + if (srv) + srv_drop(srv); + if (p) { if (p->id) free(p->id); @@ -1155,16 +1158,6 @@ struct sink *sink_new_from_logsrv(struct logsrv *logsrv) free(p); } - if (srv) { - if (srv->id) - free(srv->id); - if (srv->conf.file) - free((void *)srv->conf.file); - if (srv->per_thr) - free(srv->per_thr); - free(srv); - } - if (sft) free(sft);