Personal tools
You are here: Home Projects Milter-Greylist

Milter-Greylist

by Herbert Straub last modified 2008-03-11 08:05

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

Browse the 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:

  • libspf2 developer list: report to mailinglist
  • Debian: #392793 open
  • Ubuntu: #65952 open

Errors and Improvments

If you find any error, please let me know and send a mail to herbert@linuxhacker.at

Document Actions