Defend against bad data from gethostbyaddr(). Fixes bug #619
authorNigel Metheringham <nigel@exim.org>
Thu, 18 Oct 2007 12:00:43 +0000 (12:00 +0000)
committerNigel Metheringham <nigel@exim.org>
Thu, 18 Oct 2007 12:00:43 +0000 (12:00 +0000)
doc/doc-txt/ChangeLog
src/src/host.c

index 63abba29c51191a947f1101a0eb913092a547ef6..fa7a84f1404898a50c44e998d775cf637749b586 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.533 2007/09/28 13:04:16 tom Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.534 2007/10/18 12:00:43 nm4 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -19,6 +19,8 @@ NM/01 Bugzilla 592: --help option is handled incorrectly if exim is invoked
 
 SC/01 Added the -bylocaldomain option to eximstats.
 
+NM/02 Bugzilla 619: Defended against bad data coming back from gethostbyaddr
+
 Exim version 4.68
 -----------------
 
index b353fe2db4fd10f32daedda95145cd6ec5d4ef6a..18821035c5e73a7cd268b3f1e307d3b5530a3c80 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/host.c,v 1.28 2007/01/08 10:50:18 ph10 Exp $ */
+/* $Cambridge: exim/src/src/host.c,v 1.29 2007/10/18 12:01:00 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1502,7 +1502,7 @@ if (hosts == NULL)
 treat this as non-existent. In some operating systems, this is returned as an
 empty string; in others as a single dot. */
 
-if (hosts->h_name[0] == 0 || hosts->h_name[0] == '.')
+if (hosts->h_name == NULL || hosts->h_name[0] == 0 || hosts->h_name[0] == '.')
   {
   HDEBUG(D_host_lookup) debug_printf("IP address lookup yielded an empty name: "
     "treated as non-existent host name\n");