[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#408406: glibc malloc checker can abort deliver resulting in bounced mail



Package: deliver
Version: 2.1.14-4
Severity: grave

Libc version: 2.3.6.ds1-8

The deliver command fails infrequently producing the following log in mail.log... Jan 24 09:22:35 core postfix/local[21837]: 09C0836F28: to=<dave@federated.com>,
     relay=local, delay=0.13, delays=0.04/0/0/0.09, dsn=5.3.0,
status=bounced (Command died with signal 6: "/usr/bin/deliver - u /etc/deliver/default.user dave". Command output: *** glibc detected *** free(): invalid pointer: 0xb7f51d14 *** )

In the last 69000 deliveries I see 220 of these failures. The users on this system all use the same deliver file...
    #!/bin/sh

    if cat $HEADER | grep -q 'X-Bogosity:  *Yes' ;then
        [ -d ~/Mail ] || mkdir ~/Mail
        echo ':Mail/bogospam'
        exit 0
    fi

    echo ':Mail/shadow'

A fix, short of finding what is probably a doubly freed or uninitialized pointer would
be to disable the suicidal error enforcement recently added in glibc.
I think a putenv("MALLOC_CHECK_",0) as the first thing in the program would accomplish this, though I haven't tried and there seems to be some dispute on the web if the last "_"
should be there, the debian man page suggests it should.



Reply to: