Skip to content

Commit 2a1a753

Browse files
authored
Merge pull request syslog-ng#5124 from HofiOne/leak-fixes
Various memory leak fixes
2 parents 11bcd32 + aa0b97f commit 2a1a753

File tree

5 files changed

+17
-0
lines changed

5 files changed

+17
-0
lines changed

lib/logsource.c

+4
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,8 @@ _set_metric_options(LogSource *self, const gchar *stats_id, StatsClusterKeyBuild
752752
self->stats_id, instance_name);
753753
stats_cluster_key_builder_set_legacy_alias_name(self->metrics.stats_kb, "processed");
754754
stats_cluster_key_builder_add_label(self->metrics.stats_kb, stats_cluster_label("id", self->stats_id));
755+
if (self->metrics.recvd_messages_key)
756+
stats_cluster_key_free(self->metrics.recvd_messages_key);
755757
self->metrics.recvd_messages_key = stats_cluster_key_builder_build_single(self->metrics.stats_kb);
756758
}
757759
stats_cluster_key_builder_pop(self->metrics.stats_kb);
@@ -760,6 +762,8 @@ _set_metric_options(LogSource *self, const gchar *stats_id, StatsClusterKeyBuild
760762
{
761763
stats_cluster_key_builder_set_name(self->metrics.stats_kb, "input_event_bytes_total");;
762764
stats_cluster_key_builder_add_label(self->metrics.stats_kb, stats_cluster_label("id", self->stats_id));
765+
if (self->metrics.recvd_bytes_key)
766+
stats_cluster_key_free(self->metrics.recvd_bytes_key);
763767
self->metrics.recvd_bytes_key = stats_cluster_key_builder_build_single(self->metrics.stats_kb);
764768
}
765769
stats_cluster_key_builder_pop(self->metrics.stats_kb);

lib/logthrdest/logthrdestdrv.c

+9
Original file line numberDiff line numberDiff line change
@@ -1324,6 +1324,15 @@ _unregister_driver_stats(LogThreadedDestDriver *self)
13241324
stats_cluster_key_free(self->metrics.processed_sc_key);
13251325
self->metrics.processed_sc_key = NULL;
13261326
}
1327+
1328+
if (self->metrics.output_event_retries_sc_key)
1329+
{
1330+
stats_unregister_counter(self->metrics.output_event_retries_sc_key, SC_TYPE_SINGLE_VALUE,
1331+
&self->metrics.output_event_retries);
1332+
1333+
stats_cluster_key_free(self->metrics.output_event_retries_sc_key);
1334+
self->metrics.output_event_retries_sc_key = NULL;
1335+
}
13271336
}
13281337
stats_unlock();
13291338
}

lib/metrics/dyn-metrics-template.c

+1
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ dyn_metrics_template_clone(DynMetricsTemplate *self, GlobalConfig *cfg)
164164
LabelTemplate *label_template = (LabelTemplate *) elem->data;
165165
cloned->label_templates = g_list_append(cloned->label_templates, label_template_clone(label_template));
166166
}
167+
value_pairs_unref(cloned->vp);
167168
cloned->vp = value_pairs_ref(self->vp);
168169
return cloned;
169170
}

lib/pragma-grammar.ym

+2
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ requires_stmt
190190
evt_tag_str("details", $3 ? : "none"),
191191
cfg_lexer_format_location_tag(lexer,&@1));
192192
free($2);
193+
free($3);
193194
PRAGMA_ERROR();
194195
}
195196
else
@@ -201,6 +202,7 @@ requires_stmt
201202
}
202203
}
203204
free($2);
205+
free($3);
204206
}
205207
;
206208

modules/metrics-probe/metrics-probe.c

+1
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ _clone(LogPipe *s)
157157
MetricsProbe *cloned = (MetricsProbe *) metrics_probe_new(s->cfg);
158158

159159
log_parser_clone_settings(&self->super, &cloned->super);
160+
dyn_metrics_template_free(cloned->metrics_template);
160161
cloned->metrics_template = dyn_metrics_template_clone(self->metrics_template, s->cfg);
161162

162163
metrics_probe_set_increment_template(&cloned->super, self->increment_template);

0 commit comments

Comments
 (0)