Skip to content

Commit 86fd0e3

Browse files
committed
filterx/object-metrics-labels: fix leaking pre-transform new_value in set_sub()
Signed-off-by: Attila Szakacs <attila.szakacs@axoflow.com>
1 parent f459285 commit 86fd0e3

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/filterx/object-metrics-labels.c

+6-3
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,18 @@ _set_subscript(FilterXDict *s, FilterXObject *key, FilterXObject **new_value)
128128
if (!name_str || !value_str)
129129
return FALSE;
130130

131-
if (!filterx_object_is_type(*new_value, &FILTERX_TYPE_NAME(string)))
132-
*new_value = filterx_string_new(value_str, -1);
133-
134131
StatsClusterLabel label = stats_cluster_label(g_strndup(name_str, name_len), g_strndup(value_str, value_len));
135132
g_array_append_val(self->labels, label);
136133

137134
self->sorted = FALSE;
138135
self->deduped = FALSE;
139136

137+
if (!filterx_object_is_type(*new_value, &FILTERX_TYPE_NAME(string)))
138+
{
139+
filterx_object_unref(*new_value);
140+
*new_value = filterx_string_new(value_str, value_len);
141+
}
142+
140143
scratch_buffers_reclaim_marked(marker);
141144
return TRUE;
142145
}

0 commit comments

Comments
 (0)