From 4d69b8fbfe95cd56e2b824fb203be1975386dac8 Mon Sep 17 00:00:00 2001 From: Stuart Gathman <stuart@gathman.org> Date: Fri, 26 Jan 2007 03:47:23 +0000 Subject: [PATCH] Handle null in header value. --- bms.py | 24 +++++++++++++++--------- milter.spec | 1 + 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/bms.py b/bms.py index 65364c6..6acc893 100644 --- a/bms.py +++ b/bms.py @@ -1,6 +1,9 @@ #!/usr/bin/env python # A simple milter that has grown quite a bit. # $Log$ +# Revision 1.91 2007/01/25 22:47:25 customdesigned +# Persist blacklisting from delayed DSNs. +# # Revision 1.90 2007/01/23 19:46:20 customdesigned # Add private relay. # @@ -701,11 +704,10 @@ class bmsMilter(Milter.Milter): elif hres == 'pass': qual = 'HELO' domain = self.spf.h - elif self.missing_ptr and self.spf.result == 'none': - qual = 'IP' - domain = self.connectip - else: - qual = self.connectip + else: + # No good identity: blame purported domain. Qualify by SPF + # result so NEUTRAL will get separate reputation from SOFTFAIL. + qual = res try: umis = gossip.umis(domain+qual,self.id+time.time()) res,hdr,val = gossip_node.query(umis,domain,qual,1) @@ -945,8 +947,8 @@ class bmsMilter(Milter.Milter): self.reject_spam = False self.smart_alias(to) # get recipient after virtusertable aliasing - rcpt = self.getsymval("{rcpt_addr}") - self.log("rcpt-addr",rcpt); + #rcpt = self.getsymval("{rcpt_addr}") + #self.log("rcpt-addr",rcpt); return Milter.CONTINUE # Heuristic checks for spam headers @@ -1480,8 +1482,12 @@ class bmsMilter(Milter.Milter): for name,val,idx in self.new_headers: try: - self.addheader(name,val,idx) - except: + try: + self.addheader(name,val,idx) + except TypeError: + val = val.replace('\x00',r'\x00') + self.addheader(name,val,idx) + except milter.error: self.addheader(name,val) # older sendmail can't insheader if self.cbv_needed: diff --git a/milter.spec b/milter.spec index a10c2d3..dbf3737 100644 --- a/milter.spec +++ b/milter.spec @@ -182,6 +182,7 @@ rm -rf $RPM_BUILD_ROOT - fix plock for missing source and can't change owner/group - add sample spfmilter.py milter - private_relay config option +- persist delayed DSN blacklisting * Sat Nov 04 2006 Stuart Gathman <stuart@bmsi.com> 0.8.7-1 - More lame bounce heuristics - SPF moved to pyspf RPM -- GitLab