aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/poplib.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/poplib.py')
-rw-r--r--Lib/poplib.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/Lib/poplib.py b/Lib/poplib.py
index beb93a0d57c..4469bff44b4 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -226,8 +226,19 @@ class POP3:
retval = self._shortcmd('STAT')
rets = retval.split()
if self._debugging: print('*stat*', repr(rets))
- numMessages = int(rets[1])
- sizeMessages = int(rets[2])
+
+ # Check if the response has enough elements
+ # RFC 1939 requires at least 3 elements (+OK, message count, mailbox size)
+ # but allows additional data after the required fields
+ if len(rets) < 3:
+ raise error_proto("Invalid STAT response format")
+
+ try:
+ numMessages = int(rets[1])
+ sizeMessages = int(rets[2])
+ except ValueError:
+ raise error_proto("Invalid STAT response data: non-numeric values")
+
return (numMessages, sizeMessages)