From 9b089c9a7b5b3330765932e7ceca345e2fedfaf2 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Sun, 14 Apr 2019 07:19:22 -0400 Subject: [PATCH] Fix abc.GuildChannel.overwrites returning None keys. This has potential for data loss as a consequence of how the function works. --- discord/abc.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/discord/abc.py b/discord/abc.py index 86466d3da..015f38d21 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -365,7 +365,14 @@ class GuildChannel: target = self.guild.get_role(ow.id) elif ow.type == 'member': target = self.guild.get_member(ow.id) - ret[target] = overwrite + + # TODO: There is potential data loss here in the non-chunked + # case, i.e. target is None because get_member returned nothing. + # This can be fixed with a slight breaking change to the return type, + # i.e. adding discord.Object to the list of it + # However, for now this is an acceptable compromise. + if target is not None: + ret[target] = overwrite return ret @property