]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal-importer: ignore invalid field at one more place
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 21 Dec 2020 07:33:20 +0000 (16:33 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 21 Dec 2020 12:40:44 +0000 (12:40 +0000)
Fixes oss-fuzz#28817.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28817

src/shared/journal-importer.c
test/fuzz/fuzz-journal-remote/oss-fuzz-28817 [new file with mode: 0644]

index e95b638f4db45a1e2412a203c9f77063730fe0b5..b2785f0552488b307afc0de6120deeca8ebaa51b 100644 (file)
@@ -334,6 +334,16 @@ int journal_importer_process_data(JournalImporter *imp) {
                         if (r < 0)
                                 return r;
                 } else {
+                        if (!journal_field_valid(line, n - 1, true)) {
+                                char buf[64], *t;
+
+                                t = strndupa(line, n - 1);
+                                log_debug("Ignoring invalid field: \"%s\"",
+                                          cellescape(buf, sizeof buf, t));
+
+                                return 0;
+                        }
+
                         /* replace \n with = */
                         line[n-1] = '=';
 
diff --git a/test/fuzz/fuzz-journal-remote/oss-fuzz-28817 b/test/fuzz/fuzz-journal-remote/oss-fuzz-28817
new file mode 100644 (file)
index 0000000..5b12055
Binary files /dev/null and b/test/fuzz/fuzz-journal-remote/oss-fuzz-28817 differ