Skip to content

Commit 9464a9e

Browse files
committed
Filter(fix): fix pattern filter memory leak
1 parent c715c62 commit 9464a9e

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/filter/pattern_filter.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ void finalize(void) {
6161
}
6262

6363
static bool filter(const SrnMessage *msg) {
64+
bool drop;
6465
char *raw_content;
6566
GList *patterns;
6667
GList *lst;
@@ -74,10 +75,11 @@ static bool filter(const SrnMessage *msg) {
7475
ret = srn_markup_renderer_render(markup_renderer,
7576
msg->rendered_content, &raw_content, NULL);
7677
if (!RET_IS_OK(ret)){
77-
// ret = RET_ERR(_("Failed to render markup text: %1$s"), RET_MSG(ret));
78-
// return TRUE;
78+
ERR_FR("Failed to render markup text: %1$s", RET_MSG(ret));
79+
return TRUE;
7980
}
8081

82+
drop = FALSE;
8183
patterns = get_patterns(msg);
8284
lst = patterns;
8385
while (lst) {
@@ -86,18 +88,17 @@ static bool filter(const SrnMessage *msg) {
8688

8789
pattern = lst->data;
8890
regex = srn_pattern_set_get(pattern_set, pattern);
89-
if (regex) {
90-
if (g_regex_match(regex, raw_content, 0, NULL)) {
91-
return FALSE;
92-
}
91+
if (regex && g_regex_match(regex, raw_content, 0, NULL)) {
92+
drop = TRUE;
93+
break;
9394
}
9495
lst = g_list_next(lst);
9596
}
9697

9798
g_list_free(patterns);
99+
g_free(raw_content);
98100

99-
// TODO
100-
return TRUE;
101+
return !drop;
101102
}
102103

103104
/**

0 commit comments

Comments
 (0)