+userdir-ldap (0.3.56) unstable; urgency=low
+
+ * There is a deadlock situation when ud-mailgate gets a mail claiming
+ to be from itself:
+ - ud-mailgate opens and locks the replay cache
+ - verification of the mail fails for whatever reason
+ - a reply is sent (to itself)
+ - exim tries to deliver the mail by directly calling ud-mailgate
+ - ud-mailgate tries to acquire the lock -> deadlock
+ Fix this by changing when we open the replay cache, and unlock it
+ as soon as we are done.
+
+ -- Peter Palfrader <weasel@debian.org> Wed, 17 Dec 2008 12:54:10 +0100
+
userdir-ldap (0.3.55) unstable; urgency=low
[ Joey Schulze ]
# Startup the replay cache
ErrType = EX_TEMPFAIL;
ErrMsg = "Failed to initialize the replay cache:";
- RC = ReplayCache(ReplayCacheFile);
- RC.Clean();
# Get the email
ErrType = EX_PERMFAIL;
else:
PlainText = Res[3];
- # Check the signature against the replay cache
- ErrMsg = "The replay cache rejected your message. Check your clock!";
- Rply = RC.Check(Res[1]);
- if Rply != None:
- raise Error, Rply;
-
# Connect to the ldap server
ErrType = EX_TEMPFAIL;
ErrMsg = "An error occured while performing the LDAP lookup";
if len(Attrs) != 1:
raise Error, "Oddly your key fingerprint is assigned to more than one account.."
+
+ # Check the signature against the replay cache
+ RC = ReplayCache(ReplayCacheFile);
+ RC.Clean();
+ ErrMsg = "The replay cache rejected your message. Check your clock!";
+ Rply = RC.Check(Res[1]);
+ if Rply != None:
+ RC.close()
+ raise Error, Rply;
RC.Add(Res[1]);
+ RC.close()
# Determine the sender address
ErrMsg = "A problem occured while trying to formulate the reply";