diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-12-16 04:44:31 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-02 17:31:31 +0100 |
commit | 26ad442e7798a90515e913b6a244d95175caa09f (patch) | |
tree | 8f947d974cf81f30fc0bedb8b0e11ea3abd4403b | |
parent | 3ccb7fc9e727c96fb31a73859079c9344dd16520 (diff) | |
download | systemd-26ad442e7798a90515e913b6a244d95175caa09f.tar.gz |
journal: refuse data which contain invalid fields
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25353.
(cherry picked from commit f2bd032044ca3cd4b454dd0ba86719effcf34dc0)
(cherry picked from commit 2c53886b4f6d987aca180e725064e59bbdaec714)
-rw-r--r-- | src/journal/journal-file.c | 3 | ||||
-rw-r--r-- | test/fuzz/fuzz-journal-remote/oss-fuzz-25353 | bin | 0 -> 45 bytes |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 5bf4d40dc0..e2e7df3784 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -1576,6 +1576,9 @@ static int journal_file_append_field( assert(f); assert(field && size > 0); + if (!journal_field_valid(field, size, true)) + return -EBADMSG; + hash = journal_file_hash_data(f, field, size); r = journal_file_find_field_object_with_hash(f, field, size, hash, &o, &p); diff --git a/test/fuzz/fuzz-journal-remote/oss-fuzz-25353 b/test/fuzz/fuzz-journal-remote/oss-fuzz-25353 Binary files differnew file mode 100644 index 0000000000..94e5fbb93e --- /dev/null +++ b/test/fuzz/fuzz-journal-remote/oss-fuzz-25353 |