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

LibIMAP: Handle invalid escape sequences in Quoted-Printable parser

When an invalid escape sequence is encountered, we now output the
characters unaltered instead of crashing.
This commit is contained in:
Tim Ledbetter 2023-10-05 18:42:27 +01:00 committed by Andreas Kling
parent debb4edcc8
commit 80238f29d2
2 changed files with 37 additions and 12 deletions

View file

@ -46,4 +46,17 @@ TEST_CASE(test_decode)
auto illegal_character_decode = MUST(IMAP::decode_quoted_printable(illegal_character_builder.to_deprecated_string()));
EXPECT(illegal_character_decode.is_empty());
// If an escape sequence is invalid the characters are output unaltered. Illegal characters are ignored as usual.
decode_equal("="sv, "="sv);
decode_equal("=Z"sv, "=Z"sv);
decode_equal("=\x7F"sv, "="sv);
decode_equal("=\x7F\x7F"sv, "="sv);
decode_equal("=A\x7F"sv, "=A"sv);
decode_equal("=A"sv, "=A"sv);
decode_equal("=AZ"sv, "=AZ"sv);
decode_equal("=\r"sv, "=\r"sv);
decode_equal("=\r\r"sv, "=\r\r"sv);
decode_equal("=\n\r"sv, "=\n\r"sv);
decode_equal("=\rA"sv, "=\rA"sv);
}