summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mailman/MailList.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
index 1e0dd96e6..b7ca07f62 100644
--- a/Mailman/MailList.py
+++ b/Mailman/MailList.py
@@ -29,7 +29,7 @@ import sys, os, marshal, string, posixfile, time
import re
import Utils
import Errors
-from types import StringType, IntType
+from types import StringType, IntType, DictType
from ListAdmin import ListAdmin
from Deliverer import Deliverer
@@ -765,11 +765,14 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin,
try:
file = open(os.path.join(self._full_path, 'config.db'), 'r')
except IOError:
- raise mm_cfg.MMBadListError, 'Failed to access config info'
+ raise Errors.MMBadListError, 'Failed to access config info'
try:
dict = marshal.load(file)
+ if type(dict) <> DictType:
+ raise Errors.MMBadListError, \
+ 'Unmarshaled config info is not a dictionary'
except (EOFError, ValueError, TypeError):
- raise mm_cfg.MMBadListError, 'Failed to unmarshal config info'
+ raise Errors.MMBadListError, 'Failed to unmarshal config info'
for key, value in dict.items():
setattr(self, key, value)
file.close()