1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:47:35 +00:00

LibCompress: Implement block size validation for XZ streams

This commit is contained in:
Tim Schumacher 2023-04-01 11:08:46 +02:00 committed by Andreas Kling
parent 20f1a29202
commit ad31265e60
3 changed files with 51 additions and 17 deletions

View file

@ -303,8 +303,8 @@ TEST_CASE(xz_utils_bad_0_nonempty_index)
auto stream = MUST(try_make<FixedMemoryStream>(compressed));
auto decompressor = MUST(Compress::XzDecompressor::create(move(stream)));
// TODO: The index is currently not checked against the actual blocks.
(void)decompressor->read_until_eof(PAGE_SIZE);
auto buffer_or_error = decompressor->read_until_eof(PAGE_SIZE);
EXPECT(buffer_or_error.is_error());
}
TEST_CASE(xz_utils_bad_0pad_empty)
@ -963,8 +963,8 @@ TEST_CASE(xz_utils_bad_2_index_1)
auto stream = MUST(try_make<FixedMemoryStream>(compressed));
auto decompressor = MUST(Compress::XzDecompressor::create(move(stream)));
// TODO: The index is currently not checked against the actual blocks.
(void)decompressor->read_until_eof(PAGE_SIZE);
auto buffer_or_error = decompressor->read_until_eof(PAGE_SIZE);
EXPECT(buffer_or_error.is_error());
}
TEST_CASE(xz_utils_bad_2_index_2)
@ -981,8 +981,8 @@ TEST_CASE(xz_utils_bad_2_index_2)
auto stream = MUST(try_make<FixedMemoryStream>(compressed));
auto decompressor = MUST(Compress::XzDecompressor::create(move(stream)));
// TODO: The index is currently not checked against the actual blocks.
(void)decompressor->read_until_eof(PAGE_SIZE);
auto buffer_or_error = decompressor->read_until_eof(PAGE_SIZE);
EXPECT(buffer_or_error.is_error());
}
TEST_CASE(xz_utils_bad_2_index_3)
@ -1060,8 +1060,8 @@ TEST_CASE(xz_utils_bad_3_index_uncomp_overflow)
auto stream = MUST(try_make<FixedMemoryStream>(compressed));
auto decompressor = MUST(Compress::XzDecompressor::create(move(stream)));
// TODO: The index is currently not checked against the actual blocks, so the overflow never occurs in the first place.
(void)decompressor->read_until_eof(PAGE_SIZE);
auto buffer_or_error = decompressor->read_until_eof(PAGE_SIZE);
EXPECT(buffer_or_error.is_error());
}
auto const xz_utils_hello_world = "Hello\nWorld!\n"sv;