aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman
diff options
context:
space:
mode:
authorMark Sapiro <mark@msapiro.net>2008-09-21 11:59:44 -0700
committerMark Sapiro <mark@msapiro.net>2008-09-21 11:59:44 -0700
commit442dfb107a5dd011dcee55d3bb4f3b1ec58ac91a (patch)
tree09b2d055afbd48831325a9b254fcfc78ee5e282e /Mailman
parent8a5abde2e58368b605605e370bc3870eb51ca0e6 (diff)
downloadmailman2-442dfb107a5dd011dcee55d3bb4f3b1ec58ac91a.tar.gz
mailman2-442dfb107a5dd011dcee55d3bb4f3b1ec58ac91a.tar.xz
mailman2-442dfb107a5dd011dcee55d3bb4f3b1ec58ac91a.zip
The immediately preceding fix for bug #266106 (sf998384) was incomplete.
It fixed the underlying issue, but didn't fix an improperly converted request.pck file. This change adds code to detect and recover from an incorect conversion.
Diffstat (limited to 'Mailman')
-rw-r--r--Mailman/ListAdmin.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/Mailman/ListAdmin.py b/Mailman/ListAdmin.py
index f862073b..ec1307ac 100644
--- a/Mailman/ListAdmin.py
+++ b/Mailman/ListAdmin.py
@@ -538,7 +538,21 @@ class ListAdmin:
except IOError, e:
if e.errno <> errno.ENOENT: raise
self.__db = {}
- for id, (op, info) in self.__db.items():
+ for id, x in self.__db.items():
+ # A bug in versions 2.1.1 through 2.1.11 could have resulted in
+ # just info being stored instead of (op, info)
+ if len(x) == 2:
+ op, info = x
+ elif len(x) == 6:
+ # This is the buggy info. Check for digest flag.
+ if x[4] in (0, 1):
+ op = SUBSCRIPTION
+ else:
+ op = HELDMSG
+ self.__db[id] = op, x
+ continue
+ else:
+ assert False, 'Unknown record format in %s' % self.__filename
if op == SUBSCRIPTION:
if len(info) == 4:
# pre-2.1a2 compatibility