diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-12-17 01:13:55 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-12-17 01:13:55 +0100 |
commit | cab8ac60837b489b27a247990f741315c71cb389 (patch) | |
tree | c5eb0e242f349e0d61f8cd92c7e85e12049e2b90 /src/journal/sd-journal.c | |
parent | 7f3e62571a63ac90de6ac5eefeeb8d3e9aa6f49e (diff) |
journal: enforce limits on open journal files
Diffstat (limited to 'src/journal/sd-journal.c')
-rw-r--r-- | src/journal/sd-journal.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 85c57170d5..bcfcbfb9e1 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -30,6 +30,8 @@ #include "list.h" #include "lookup3.h" +#define JOURNAL_FILES_MAX 1024 + typedef struct Match Match; struct Match { @@ -932,6 +934,11 @@ static int add_file(sd_journal *j, const char *prefix, const char *dir, const ch assert(prefix); assert(filename); + if (hashmap_size(j->files) >= JOURNAL_FILES_MAX) { + log_debug("Too many open journal files, ignoring."); + return 0; + } + if (dir) fn = join(prefix, "/", dir, "/", filename, NULL); else @@ -952,7 +959,6 @@ static int add_file(sd_journal *j, const char *prefix, const char *dir, const ch journal_file_dump(f); - r = hashmap_put(j->files, f->path, f); if (r < 0) { journal_file_close(f); |