From: Zbigniew Jędrzejewski-Szmek Date: Tue, 16 Jul 2013 18:45:28 +0000 (-0400) Subject: journalctl,systemctl: fix tiny memleak X-Git-Tag: v206~61 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=4ad16808c02e3eb6c1ec8500b3d086cc28e9b75a journalctl,systemctl: fix tiny memleak --- diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 7415abc74..709970669 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -1408,7 +1408,12 @@ int main(int argc, char *argv[]) { if (r < 0) return EXIT_FAILURE; - log_debug("Journal filter: %s", j->level0 ? journal_make_match_string(j) : "none"); + if (_unlikely_(log_get_max_level() >= LOG_PRI(LOG_DEBUG))) { + _cleanup_free_ char *filter; + + filter = journal_make_match_string(j); + log_debug("Journal filter: %s", filter); + } if (arg_field) { const void *data; diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 81b0c136f..a83c0c25b 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -362,7 +362,7 @@ static char *match_make_string(Match *m) { bool enclose = false; if (!m) - return strdup(""); + return strdup("none"); if (m->type == MATCH_DISCRETE) return strndup(m->data, m->size); diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 8dc11bb7f..ea4746879 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -1059,7 +1059,12 @@ int show_journal_by_unit( if (r < 0) return r; - log_debug("Journal filter: %s", journal_make_match_string(j)); + if (_unlikely_(log_get_max_level() >= LOG_PRI(LOG_DEBUG))) { + _cleanup_free_ char *filter; + + filter = journal_make_match_string(j); + log_debug("Journal filter: %s", filter); + } r = show_journal(f, j, mode, n_columns, not_before, how_many, flags); if (r < 0)