Menu

#94 core dump in mlfi_eom()

1.2.0
closed
nobody
None
2015-01-08
2014-07-30
No

I am getting a core dump in mlfi_eom() under FreeBSD 10.0 where the OpenDMARC milter is followed by the OpenDKIM milter. According to gdb (below) dmarcf_findheader() fails to find the header and returns NULL but the code does not check for that condition.

In my case, OpenDKIM reports:

Daffy# grep s6UN87aC042254: /var/log/maillog
2014-07-30T17:08:08.440548-06:00 daffy sm-mta-in[42254]: s6UN87aC042254: from=bounce-1928280_HTML-805635706-13686654-172553-1@bounce.email.ally.com, size=24697, class=0, nrcpts=1, msgid=566686d5-a4ce-4cc7-937c-a41b2540ab5f@xtinmta410.xt.local, bodytype=8BITMIME, proto=ESMTP, daemon=MTA-v4, relay=mta.email.ally.com [66.231.92.124]
2014-07-30T17:08:08.440971-06:00 daffy opendkim[1078]: s6UN87aC042254: mta.email.ally.com [66.231.92.124] not internal
2014-07-30T17:08:08.440982-06:00 daffy opendkim[1078]: s6UN87aC042254: not authenticated
2014-07-30T17:08:08.440988-06:00 daffy opendkim[1078]: s6UN87aC042254: no signing domain match for 'auto.ally.com'
2014-07-30T17:08:08.440993-06:00 daffy opendkim[1078]: s6UN87aC042254: no signing subdomain match for 'auto.ally.com'
2014-07-30T17:08:18.520076-06:00 daffy sm-mta-in[42254]: s6UN87aC042254: Milter (filter3): timeout before data read, where=eom
2014-07-30T17:08:18.520107-06:00 daffy sm-mta-in[42254]: s6UN87aC042254: Milter (filter3): to error state
2014-07-30T17:08:18.520112-06:00 daffy sm-mta-in[42254]: s6UN87aC042254: Milter: data, reject=451 4.3.2 Please try again later
2014-07-30T17:08:18.520140-06:00 daffy sm-mta-in[42254]: s6UN87aC042254: to=xyzzy@penford.com, delay=00:00:10, pri=54697, stat=Please try again later
2014-07-30T17:08:24.591284-06:00 daffy opendkim[1078]: s6UN87aC042254: ADSP query: A query failed for 'auto.ally.com'
2014-07-30T17:08:24.591326-06:00 daffy opendkim[1078]: s6UN87aC042254: Authentication-Results header add failed

Daffy# gdb /usr/local/sbin/opendmarc opendmarc.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Core was generated by `opendmarc'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/libopendmarc.so.1...done.
Loaded symbols for /usr/local/lib/libopendmarc.so.1
Reading symbols from /usr/lib/libmilter.so.5...done.
Loaded symbols for /usr/lib/libmilter.so.5
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /lib/libthr.so.3...done.
Loaded symbols for /lib/libthr.so.3
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1

0 0x0000000000407ae6 in mlfi_eom (ctx=0x801c1e800) at opendmarc.c:2049

2049 strncpy(addrbuf, from->hdr_value, sizeof addrbuf - 1);
[New Thread 801c09000 (LWP 100894/opendmarc)]
[New Thread 801c07400 (LWP 100683/opendmarc)]
[New Thread 801c07000 (LWP 100681/opendmarc)]
[New Thread 801c06400 (LWP 100169/opendmarc)]
(gdb) p addrbuf
$1 = '\0' <repeats 2048="" times="">
Current language: auto; currently minimal
(gdb) p from
$2 = (struct dmarcf_header *) 0x0</repeats>

Discussion

  • Murray S. Kucherawy

    This is a duplicate of bug #72. This is fixed in 1.3.0.

     
  • Murray S. Kucherawy

    • status: open --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB