From 1e368f8cc92dd5248875ce5f677cba00d804aa6e Mon Sep 17 00:00:00 2001 From: Luna Mendes Date: Sat, 17 Nov 2018 18:21:20 -0300 Subject: [PATCH] images: return None on invalid icon data when put()-ing - guild.emoji: send 400 on invalid icon --- litecord/blueprints/guild/emoji.py | 3 +++ litecord/images.py | 7 +++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/litecord/blueprints/guild/emoji.py b/litecord/blueprints/guild/emoji.py index e4bf5c5..b85e59a 100644 --- a/litecord/blueprints/guild/emoji.py +++ b/litecord/blueprints/guild/emoji.py @@ -53,6 +53,9 @@ async def _put_emoji(guild_id): bsize=128 * KILOBYTES, size=(128, 128) ) + if not icon: + return '', 400 + await app.db.execute( """ INSERT INTO guild_emoji diff --git a/litecord/images.py b/litecord/images.py index 64917f9..2d946ed 100644 --- a/litecord/images.py +++ b/litecord/images.py @@ -205,7 +205,7 @@ class IconManager: b64_data: str, **kwargs) -> Icon: """Insert an icon.""" if b64_data is None: - return Icon(None, None, '') + return None mime, raw_data = parse_data_uri(b64_data) data_fd = BytesIO(raw_data) @@ -213,9 +213,8 @@ class IconManager: # get an extension for the given data uri extension = _get_ext(mime) - if 'bsize' in kwargs: - if len(raw_data) > kwargs['bsize']: - return Icon(None, None, '') + if 'bsize' in kwargs and len(raw_data) > kwargs['bsize']: + return None if 'size' in kwargs: image = Image.open(data_fd)