diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c index e95b638f4d..b2785f0552 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 Binary files /dev/null and b/test/fuzz/fuzz-journal-remote/oss-fuzz-28817 differ