summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-12-21 16:33:20 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-02 17:32:01 +0100
commit85b64a7218d76417dc58c69f8ae65da35ca892a6 (patch)
tree0ad981819aadbe1031919b7f1a4a6516564c9236
parent00071dd6b9ad3e3ece1d8420f6dbca0f6d1108b8 (diff)
downloadsystemd-85b64a7218d76417dc58c69f8ae65da35ca892a6.tar.gz
journal-importer: ignore invalid field at one more place
Fixes oss-fuzz#28817. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28817 (cherry picked from commit 8786d4bbe43b5f6493982bcb5211e010f99deb57) (cherry picked from commit cefb123e8ab65772a2a609081ca34ac6ea1267d6)
-rw-r--r--src/shared/journal-importer.c10
-rw-r--r--test/fuzz/fuzz-journal-remote/oss-fuzz-28817bin0 -> 256 bytes
2 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
index 7c4fc7021d..e6b2df21e5 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -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
index 0000000000..5b12055956
--- /dev/null
+++ b/test/fuzz/fuzz-journal-remote/oss-fuzz-28817
Binary files differ