Found with the coccicheck-0.2.4 open file check. --- src/journal/catalog.c | 8 +++++++- src/readahead/readahead-common.c | 10 +++++++--- 2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/journal/catalog.c b/src/journal/catalog.c index 3735ad9..f89b309 100644 --- a/src/journal/catalog.c +++ b/src/journal/catalog.c @@ -165,6 +165,7 @@ static int import_file(Hashmap *h, struct strbuf *sb, const char *path) { break; log_error("Failed to read file %s: %m", path); + fclose(f); return -errno; } @@ -199,8 +200,10 @@ static int import_file(Hashmap *h, struct strbuf *sb, const char *path) { if (got_id) { r = finish_item(h, sb, id, language, payload); - if (r < 0) + if (r < 0) { + fclose(f); return r; + } } if (with_language) { @@ -209,10 +212,12 @@ static int import_file(Hashmap *h, struct strbuf *sb, const char *path) { c = strlen(t); if (c <= 0) { log_error("[%s:%u] Language too short.", path, n); + fclose(f); return -EINVAL; } if (c > sizeof(language)) { log_error("[%s:%u] language too long.", path, n); + fclose(f); return -EINVAL; } @@ -230,6 +235,7 @@ static int import_file(Hashmap *h, struct strbuf *sb, const char *path) { continue; } } + fclose(f); /* Payload */ if (!got_id) { diff --git a/src/readahead/readahead-common.c b/src/readahead/readahead-common.c index e8e4d45..4365b6f 100644 --- a/src/readahead/readahead-common.c +++ b/src/readahead/readahead-common.c @@ -96,8 +96,10 @@ int fs_on_ssd(const char *p) { _cleanup_free_ char *opts = NULL; int mid; - if (!fgets(line, sizeof(line), f)) + if (!fgets(line, sizeof(line), f)) { + fclose(f); return false; + } truncate_nl(line); @@ -114,10 +116,12 @@ int fs_on_ssd(const char *p) { if (sscanf(e+3, "%*s %*s %ms", &opts) != 1) continue; - if (streq(opts, "ssd") || startswith(opts, "ssd,") || endswith(opts, ",ssd") || strstr(opts, ",ssd,")) + if (streq(opts, "ssd") || startswith(opts, "ssd,") || endswith(opts, ",ssd") || strstr(opts, ",ssd,")) { + fclose(f); return true; + } } - + fclose(f); return false; } -- 1.8.1.1 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel