You have been subscribed to a public bug: receiving an email from a sender whose SPF records are bogus (invalid UTF8) can crash policyd-spf.
email (spam as it turns out, but whatever) from [email protected] whose SPF record looks like this - daltoninsurance.com. 6457 IN TXT "v=spf1 a:\239\187\191thoroughbred.webserversystems.com -all" causes policyd-spf to crash like so (filtered through syslog and logcheck, so ignore the line preambles) - 4 stomp policyd-spf: Traceback (most recent call last): 4 stomp policyd-spf: File "/usr/bin/policyd-spf", line 607, in <module> 4 stomp policyd-spf: instance_dict, configData, peruser) 4 stomp policyd-spf: File "/usr/bin/policyd-spf", line 469, in spfcheck 4 stomp policyd-spf: res = spf.check2(ip, sender, helo) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 294, in check2 4 stomp policyd-spf: res,_,exp = query(i=i, s=s, h=h, local=local, receiver=receiver).check() 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 514, in check 4 stomp policyd-spf: rc = self.check1(spf, self.d, 0) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 553, in check1 4 stomp policyd-spf: return self.check0(spf, recursion) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 836, in check0 4 stomp policyd-spf: if self.cidrmatch(self.dns_a(arg,self.A), cidrlength): 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 1132, in dns_a 4 stomp policyd-spf: return self.dns(domainname, A) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 1200, in dns 4 stomp policyd-spf: for k, v in DNSLookup(name, qtype, self.strict, self.timeout): 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/spf.py", line 127, in DNSLookup 4 stomp policyd-spf: resp = req.req() 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/DNS/Base.py", line 202, in req 4 stomp policyd-spf: m.addQuestion(qname, qtype, Class.IN) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/DNS/Lib.py", line 478, in addQuestion 4 stomp policyd-spf: self.addname(qname) 4 stomp policyd-spf: File "/usr/lib/python2.6/dist-packages/DNS/Lib.py", line 125, in addname 4 stomp policyd-spf: label = label.encode(enc) 4 stomp policyd-spf: File "/usr/lib/python2.6/encodings/idna.py", line 164, in encode 4 stomp policyd-spf: result.append(ToASCII(label)) 4 stomp policyd-spf: File "/usr/lib/python2.6/encodings/idna.py", line 76, in ToASCII 4 stomp policyd-spf: label = nameprep(label) 4 stomp policyd-spf: File "/usr/lib/python2.6/encodings/idna.py", line 21, in nameprep 4 stomp policyd-spf: newlabel.append(stringprep.map_table_b2(c)) 4 stomp policyd-spf: File "/usr/lib/python2.6/stringprep.py", line 197, in map_table_b2 4 stomp policyd-spf: b = unicodedata.normalize("NFKC", al) 4 stomp policyd-spf: TypeError: normalize() argument 2 must be unicode, not str 4 stomp postfix/spawn: warning: command /usr/bin/python exit status 1 ** Affects: py3dns (Ubuntu) Importance: High Status: Confirmed ** Tags: crash unicode -- policyd-spf crashes on broken SPF records https://bugs.launchpad.net/bugs/832480 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
