diff --git a/modules/affile/affile-dest.c b/modules/affile/affile-dest.c index 0969f3ed3d..18592048c7 100644 --- a/modules/affile/affile-dest.c +++ b/modules/affile/affile-dest.c @@ -316,6 +316,14 @@ affile_dw_set_owner(AFFileDestWriter *self, AFFileDestDriver *owner) self->filename); } +static void +affile_dw_unset_owner(AFFileDestWriter *self) +{ + if (self->owner) + log_pipe_unref(&self->owner->super.super.super); + self->owner = NULL; +} + static void affile_dw_free(LogPipe *s) { @@ -496,7 +504,7 @@ affile_dd_reuse_writer(gpointer key, gpointer value, gpointer user_data) affile_dw_set_owner(writer, self); if (!log_pipe_init(&writer->super)) { - affile_dw_set_owner(writer, NULL); + affile_dw_unset_owner(writer); log_pipe_unref(&writer->super); g_hash_table_remove(self->writer_hash, key); }