summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-12-23 21:35:29 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-12-23 21:35:29 +0900
commit418cce628cf28d4feaeda60241cf9781f8afbf1c (patch)
treee30125cb28f988717729fe9c156330453d1c80bc
parenta9c97bbbfb271d68b2ca4f3aa346fdf5e9c70c27 (diff)
downloadsystemd-418cce628cf28d4feaeda60241cf9781f8afbf1c.tar.gz
sd-journal: free incomplete match on failure
-rw-r--r--src/libsystemd/sd-journal/sd-journal.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c
index efaa2bf501..28a6e31a9f 100644
--- a/src/libsystemd/sd-journal/sd-journal.c
+++ b/src/libsystemd/sd-journal/sd-journal.c
@@ -233,7 +233,7 @@ static void match_free_if_empty(Match *m) {
}
_public_ int sd_journal_add_match(sd_journal *j, const void *data, size_t size) {
- Match *l3, *l4, *add_here = NULL, *m;
+ Match *l3, *l4, *add_here = NULL, *m = NULL;
uint64_t hash;
assert_return(j, -EINVAL);
@@ -322,6 +322,7 @@ _public_ int sd_journal_add_match(sd_journal *j, const void *data, size_t size)
return 0;
fail:
+ match_free(m);
match_free_if_empty(add_here);
match_free_if_empty(j->level2);
match_free_if_empty(j->level1);