]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
coredump: clamp JournalSizeMax= to maximum journald would accept
authorLennart Poettering <lennart@poettering.net>
Thu, 22 Jun 2023 15:11:00 +0000 (17:11 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 23 Jun 2023 07:45:50 +0000 (09:45 +0200)
See: #26748

src/coredump/coredump.c

index 940c0def61e7ae54d171fa01d00c763f0d1b6e0b..39b777b5358947d6be1cf69590016fd5bbdd4d25 100644 (file)
@@ -172,9 +172,27 @@ static int parse_config(void) {
                 {}
         };
 
-        return config_parse_config_file("coredump.conf", "Coredump\0",
-                                        config_item_table_lookup, items,
-                                        CONFIG_PARSE_WARN, NULL);
+        int r;
+
+        r = config_parse_config_file(
+                        "coredump.conf",
+                        "Coredump\0",
+                        config_item_table_lookup,
+                        items,
+                        CONFIG_PARSE_WARN,
+                        /* userdata= */ NULL);
+        if (r < 0)
+                return r;
+
+        /* Let's make sure we fix up the maximum size we send to the journal here on the client side, for
+         * efficiency reasons. journald wouldn't accept anything larger anyway. */
+        if (arg_journal_size_max > JOURNAL_SIZE_MAX) {
+                log_warning("JournalSizeMax= set to larger value (%s) than journald would accept (%s), lowering automatically.",
+                            FORMAT_BYTES(arg_journal_size_max), FORMAT_BYTES(JOURNAL_SIZE_MAX));
+                arg_journal_size_max = JOURNAL_SIZE_MAX;
+        }
+
+        return 0;
 }
 
 static uint64_t storage_size_max(void) {