[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: smtp TA's SIGSEGV in getmxrr()



On Thu, Nov 16, 2000 at 06:58:07PM +0300, Andrew P. Kokarev wrote:
> 20001112 CVS and 2.99.54 smtp sometimes get SIGSEGV
> on FreeBSD/OpenBSD systems. I traced that to happen
> in getmxrr-test as well. The conditions look simple:
> just have more than one A record for some particular MX.
> For example getmxrr-test _always_ drops core if called as
> ./getmxrr-test aol.com
> The same code does not exhibit this problem on at least one Linux.
> smtp gets SEGV when it calls CISTREQ with 1st arg == null 
> in the following line around #610 at transports/smtp/getmxrr.c  
...

   Andrew, Thomas,

	At least *this* problem is now fixed in committed CVS.
	What a surprise that BSD is at times...

   Could you check what BSD libc does in  freeaddrinfo()  ?
   Is the  struct addrinfo  block really single one, or is it
   made of multiple segments, which need separate  free() calls ?
   (glibc's  'struct addrinfo' is single block where its head has
    the common structure, then it has address(es), and finally
    the ai_canonname buffer -- all of it will be freed when
    that leading structure is freed.)

-- 
/Matti Aarnio	<mea@nic.funet.fi>