diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-06-12 13:46:11 (GMT) |
---|---|---|
committer | Tal Einat <taleinat+github@gmail.com> | 2018-06-12 13:46:11 (GMT) |
commit | 7b82281c80d0064559866afe92f19cae5978c841 (patch) | |
tree | 4f78f92d0667944be27d755cfb6a3272774575f8 /Lib/email/errors.py | |
parent | 66cea5cb1be7976fb5e63887e5c357011f2bd131 (diff) | |
download | cpython-7b82281c80d0064559866afe92f19cae5978c841.zip cpython-7b82281c80d0064559866afe92f19cae5978c841.tar.gz cpython-7b82281c80d0064559866afe92f19cae5978c841.tar.bz2 |
bpo-27397: Make email module properly handle invalid-length base64 strings (GH-7583) (GH-7664)
When attempting to base64-decode a payload of invalid length (1 mod 4),
properly recognize and handle it. The given data will be returned as-is,
i.e. not decoded, along with a new defect, InvalidBase64LengthDefect.
(cherry picked from commit c3f55be7dd012b7e92901627d0b31c21e983ccb4)
Co-authored-by: Tal Einat <taleinat+github@gmail.com>
Diffstat (limited to 'Lib/email/errors.py')
-rw-r--r-- | Lib/email/errors.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Lib/email/errors.py b/Lib/email/errors.py index 791239f..d28a680 100644 --- a/Lib/email/errors.py +++ b/Lib/email/errors.py @@ -73,6 +73,9 @@ class InvalidBase64PaddingDefect(MessageDefect): class InvalidBase64CharactersDefect(MessageDefect): """base64 encoded sequence had characters not in base64 alphabet""" +class InvalidBase64LengthDefect(MessageDefect): + """base64 encoded sequence had invalid length (1 mod 4)""" + # These errors are specific to header parsing. class HeaderDefect(MessageDefect): |