Milter-Greylist
Milter-Greylist Packaging Project
Milter-Greylist Packaging Project
This project try to create a milter-greylist Debian packages.
Milter-Greylist
Milter-greylist is a stand-alone milter written in C that implements the greylist filtering method. Read more on the Milter-Greylist Project Homepage
Status
The first installable package is ready. The location of the package:
apt-get.linuxhacker.at Ubuntu Dapper Package Archive
Installation
Add the following two lines to /etc/apt/sources.list:
deb http://apt-get.linuxhacker.at/ubuntu dapper universe
deb-src http://apt-get.linuxhacker.at/ubuntu dapper universe
The archive is digitaly signed and you can add my public key to your apt system in the following way:
wget http://apt-get.linuxhacker.at/herbert.gpg.pub apt-key add herbert.gpg.pub
and install the binary package:
apt-get install milter-greylist
or get the source:
apt-get source milter-greylist
Source
Known Problems
The milter-greylist process can crash with segfault on an amd64 CPU in the libsfp2 Library. The milter-greylist process dies and the mailing system can stops working, because the milter goes in an error state. A attached GDB shows the following:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1124096352 (LWP 5648)]
0x00002aaaab19d2a0 in memset () from /lib/libc.so.6
(gdb) bt
#0 0x00002aaaab19d2a0 in memset () from /lib/libc.so.6
#1 0x00002aaaaabcc5c2 in SPF_record_expand_data () from /usr/lib/libspf2.so.2
#2 0x00002aaaaabcccb7 in SPF_record_expand_data () from /usr/lib/libspf2.so.2
#3 0x00002aaaaabcceb6 in SPF_request_get_exp () from /usr/lib/libspf2.so.2
#4 0x00002aaaaabcdd6f in SPF_i_done () from /usr/lib/libspf2.so.2
#5 0x00002aaaaabcedf6 in SPF_record_interpret () from /usr/lib/libspf2.so.2
#6 0x00002aaaaabd1525 in SPF_request_is_loopback () from /usr/lib/libspf2.so.2
#7 0x00002aaaaabd15cf in SPF_request_query_mailfrom () from /usr/lib/libspf2.so.2
#8 0x000000000040cb75 in ?? ()
#9 0x0000000000403208 in ?? ()
#10 0x00002aaaab02273d in st_sender (g=0x43005140) at engine.c:853
#11 0x00002aaaab021bbe in mi_engine (ctx=0x547f30) at engine.c:355
#12 0x00002aaaab023b1f in mi_handle_session (ctx=0x547f30) at handler.c:45
#13 0x00002aaaab0228d9 in mi_thread_handle_wrapper (arg=0x549e40) at listener.c:566
#14 0x00002aaaaaf0d0fa in start_thread () from /lib/libpthread.so.0
#15 0x00002aaaab1f2ce2 in clone () from /lib/libc.so.6
#16 0x0000000000000000 in ?? ()
(gdb)
The libspf2 has the version 1.2.5. Carsten Koch-Mauthe found the same error and debugged the situation, see the mailinglist article The following patch (libspf2-2-1.2.5-segfault-amd64.patch ) against libspf2 correct the situation:
--- src/libspf2/spf_interpret.c.orig 2006-10-13 16:47:29.000000000 +0200
+++ src/libspf2/spf_interpret.c 2006-10-13 16:48:16.000000000 +0200
@@ -49,8 +49,8 @@
SPF_record_t *spf_record;
SPF_errcode_t err;
char *buf;
- int buflen;
- int len;
+ size_t buflen;
+ size_t len;
SPF_ASSERT_NOTNULL(spf_response);
spf_request = spf_response->spf_request;
Status:
Errors and Improvments
If you find any error, please let me know and send a mail to herbert@linuxhacker.at

