Skip to content

Commit

Permalink
affile: remove null pointer dereference in affile_dd_reuse_writer()`
Browse files Browse the repository at this point in the history
In very rare (and unrealistic) cases syslog-ng could crash if it was
reloaded and it was unable to reuse it's file writers.

Signed-off-by: Szilárd Parrag <szilard.parrag@gmail.com>
  • Loading branch information
OverOrion committed May 7, 2023
1 parent a5f24a7 commit bc13c3a
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions modules/affile/affile-dest.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,24 +292,28 @@ static void
affile_dw_set_owner(AFFileDestWriter *self, AFFileDestDriver *owner)
{
GlobalConfig *cfg = log_pipe_get_config(&owner->super.super.super);
log_pipe_set_config(&self->super, cfg);

if (self->writer)
log_pipe_set_config((LogPipe *) self->writer, cfg);

if (self->owner)
log_pipe_unref(&self->owner->super.super.super);
log_pipe_ref(&owner->super.super.super);


self->owner = owner;
self->super.expr_node = owner->super.super.super.expr_node;
if (self->owner) {
log_pipe_ref(&self->owner->super.super.super);
log_pipe_set_options(&self->super, &self->owner->super.super.super.options);
self->super.expr_node = self->owner->super.super.super.expr_node;
}

log_pipe_set_options(&self->super, &owner->super.super.super.options);
log_pipe_set_config(&self->super, cfg);
if (self->writer)
{
log_pipe_set_config((LogPipe *) self->writer, cfg);
if (self->writer && self->owner)
log_writer_set_options(self->writer,
&self->super,
&owner->writer_options,
self->owner->super.super.id,
self->filename);
}
}

static void
Expand Down

0 comments on commit bc13c3a

Please sign in to comment.