diff --git a/src/basic/journal-importer.h b/src/basic/journal-importer.h index f49ce734a1..53354b7c78 100644 --- a/src/basic/journal-importer.h +++ b/src/basic/journal-importer.h @@ -11,9 +11,14 @@ #include "time-util.h" /* Make sure not to make this smaller than the maximum coredump size. - * See COREDUMP_MAX in coredump.c */ + * See JOURNAL_SIZE_MAX in coredump.c */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION #define ENTRY_SIZE_MAX (1024*1024*770u) #define DATA_SIZE_MAX (1024*1024*768u) +#else +#define ENTRY_SIZE_MAX (1024*1024*13u) +#define DATA_SIZE_MAX (1024*1024*11u) +#endif #define LINE_CHUNK 8*1024u struct iovec_wrapper { diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c index e54c69a931..0ca8b3f00e 100644 --- a/src/coredump/coredump.c +++ b/src/coredump/coredump.c @@ -55,10 +55,15 @@ #define EXTERNAL_SIZE_MAX PROCESS_SIZE_MAX /* The maximum size up to which we store the coredump in the journal */ +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION #define JOURNAL_SIZE_MAX ((size_t) (767LU*1024LU*1024LU)) +#else +/* oss-fuzz limits memory usage. */ +#define JOURNAL_SIZE_MAX ((size_t) (10LU*1024LU*1024LU)) +#endif /* Make sure to not make this larger than the maximum journal entry - * size. See DATA_SIZE_MAX in journald-native.c. */ + * size. See DATA_SIZE_MAX in journal-importer.h. */ assert_cc(JOURNAL_SIZE_MAX <= DATA_SIZE_MAX); enum { diff --git a/test/fuzz/fuzz-journal-remote/oss-fuzz-8658 b/test/fuzz/fuzz-journal-remote/oss-fuzz-8658 new file mode 100644 index 0000000000..c78d65c569 Binary files /dev/null and b/test/fuzz/fuzz-journal-remote/oss-fuzz-8658 differ