Re: [EXIM] BUG: exim 2.04 (2.03) quitting with inconsistant …

Top Page
Delete this message
Reply to this message
Author: Malcolm Ray
Date:  
To: Matthew Frost
CC: peter, exim-users
New-Topics: [EXIM] several messages
Subject: Re: [EXIM] BUG: exim 2.04 (2.03) quitting with inconsistant DNS
> On Fri, Oct 02, 1998 at 04:22:35PM +0100, Nigel Metheringham wrote:
> > By the description of the bug, you can work round this by never doing
> > lookups on hostnames... which is exactly what we do (only the IP addresses
> > are reliable so why bother reverse mapping them - it takes significant
> > extra time).
>
> Yep I've seen the same thing, the backtrace from gdb shows:
>
> #0 0x371c8 in host_scan_for_local_hosts ()
> #1 0x37764 in host_find_byname ()
> #2 0x374dc in host_find_byaddr ()
> #3 0x482c8 in smtp_start_session ()
> #4 0x1e180 in handle_smtp_call ()
> #5 0x1f818 in daemon_go ()
> #6 0x2dfc4 in main ()


Right. The problem lies in host_find_byaddr(). host_find_byname()
assumes that the 'address' field of its first arg will be NULL, but
host_find_byaddr() forgets to clear it. Suggested but totally
unofficial patch attached.

Regards,
Malcolm

-- 
Malcolm Ray                           University of London Computer Centre


*** exim-2.04/src/host.c.dist    Fri Oct 2 18:23:39 1998
--- exim-2.04/src/host.c    Fri Oct  2 18:24:05 1998
***************
*** 1090,1095 ****
--- 1090,1096 ----
  happened to own a reverse zone could set it to point to any names at all. */


h.name = yield;
+ h.address = NULL;
h.next = NULL;

if (host_find_byname(&h, NULL, FALSE) == HOST_FIND_FAILED)