diff options
author | Mark Sapiro <mark@msapiro.net> | 2008-09-21 11:59:44 -0700 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2008-09-21 11:59:44 -0700 |
commit | 442dfb107a5dd011dcee55d3bb4f3b1ec58ac91a (patch) | |
tree | 09b2d055afbd48831325a9b254fcfc78ee5e282e /Mailman | |
parent | 8a5abde2e58368b605605e370bc3870eb51ca0e6 (diff) | |
download | mailman2-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.py | 16 |
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 |