AddrlistClass.getaddress(): when parsing `:'s, in the loop, watch out
for gotonext() pushing self.pos past the end of the string. This can
happen if the message has a To field like "To: :" and you call
msg.getaddrlist('to').
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 662703b..7030ee7 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -553,10 +553,11 @@
# address is a group
returnlist = []
+ fieldlen = len(self.field)
self.pos = self.pos + 1
while self.pos < len(self.field):
self.gotonext()
- if self.field[self.pos] == ';':
+ if self.pos < fieldlen and self.field[self.pos] == ';':
self.pos = self.pos + 1
break
returnlist = returnlist + self.getaddress()