mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-30 05:05:10 +00:00
AK: Reject invalid Base64 encoded string lengths
This commit is contained in:
parent
4ecf4c7617
commit
7e38653492
|
@ -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…
Reference in a new issue