[Pymilter] pymilter dies on IPv6 addresses

Stuart Gathman stuart at gathman.org
Mon Nov 20 11:54:37 EST 2017


This seems to be a postfix problem, as it does not happen with sendmail
- indeed on my servers most mail traffic is IPv6.   EL7 has postfix
2.10, do you know if it has the problem?  I'll try in a bit.  What
version of pymilter? 

Possibly, postfix passes the args to the connect callback slightly
differently than sendmail, and there may be a work around we could do in
pymilter.

Your traceback needs to include a function within miltermodule.c to be
useful.  It is unlikely that strlen is the problem.

On 11/20/2017 07:24 AM, Attila Nagy wrote:
> Pymilter segfaults when I try to connect to postfix (3.2) from an IPv6
> address.
> An easy way to reproduce this is to add:
> smtpd_authorized_xclient_hosts = 127.0.0.0/8 <http://127.0.0.0/8>
> to postfix main.cf <http://main.cf>
> and then do the following:
> $ nc localhost 25
> 220 localhost ESMTP Postfix
> XCLIENT ADDR=IPV6:::1
>
> pymilter dies with:
> Segmentation fault (core dumped)
>
> postfix logs this:
> warning: milter unix:/tmp/milter.sock: can't read SMFIC_CONNECT reply
> packet header: No error: 0
>
> gdb says:
> #0  strlen (str=0xffffffffdf3f9d40 <Address 0xffffffffdf3f9d40 out of
> bounds>)
>     at /usr/src/lib/libc/string/strlen.c:100
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gathman.org/pipermail/pymilter/attachments/20171120/eaa2aa10/attachment.html>


More information about the Pymilter mailing list