mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 12:05:15 +00:00
AK: Reject invalid Base64 encoded string lengths
This commit is contained in:
parent
4ecf4c7617
commit
7e38653492
Notes:
sideshowbarker
2024-07-17 09:41:18 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/7e38653492 Pull-request: https://github.com/SerenityOS/serenity/pull/23699 Issue: https://github.com/SerenityOS/serenity/issues/23689
2 changed files with 8 additions and 0 deletions
|
@ -34,6 +34,9 @@ static ErrorOr<ByteBuffer> decode_base64_impl(StringView input, ReadonlySpan<i16
|
|||
{
|
||||
input = input.trim_whitespace();
|
||||
|
||||
if (input.length() % 4 != 0)
|
||||
return Error::from_string_literal("Invalid length of Base64 encoded string");
|
||||
|
||||
auto get = [&](size_t offset, bool* is_padding) -> ErrorOr<u8> {
|
||||
if (offset >= input.length())
|
||||
return 0;
|
||||
|
|
|
@ -40,6 +40,11 @@ TEST_CASE(test_decode_invalid)
|
|||
|
||||
EXPECT(decode_base64("aGVsbG8_d29ybGQ="sv).is_error());
|
||||
EXPECT(decode_base64url("aGVsbG8/d29ybGQ="sv).is_error());
|
||||
|
||||
EXPECT(decode_base64("Y"sv).is_error());
|
||||
EXPECT(decode_base64("YQ"sv).is_error());
|
||||
EXPECT(decode_base64("YQ="sv).is_error());
|
||||
EXPECT(decode_base64("PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMC42MDUiIGhlaWdodD0iMTUuNTU1Ij48cGF0aCBmaWxsPSIjODg5IiBkPSJtMi44MjggMTUuNTU1IDcuNzc3LTcuNzc5TDIuODI4IDAgMCAyLjgyOGw0Ljk0OSA0Ljk0OEwwIDEyLjcyN2wyLjgyOCAyLjgyOHoiLz48L3N2Zz4"sv).is_error());
|
||||
}
|
||||
|
||||
TEST_CASE(test_decode_only_padding)
|
||||
|
|
Loading…
Add table
Reference in a new issue