ph10 2005/11/28 10:07:55 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src verify.c
Log:
Fix another case of bad comparison between IPv6 addresses that may or
may not be abbreviated.
Revision Changes Path
1.268 +5 -0 exim/exim-doc/doc-txt/ChangeLog
1.29 +1 -3 exim/exim-src/src/verify.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.267
retrieving revision 1.268
diff -u -r1.267 -r1.268
--- ChangeLog 21 Nov 2005 12:04:23 -0000 1.267
+++ ChangeLog 28 Nov 2005 10:07:55 -0000 1.268
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.267 2005/11/21 12:04:23 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.268 2005/11/28 10:07:55 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -160,6 +160,11 @@
fail. Luckily, there already exists a function for doing the comparison
by converting both addresses to binary, so now that is used instead of
the text comparison.
+
+PH/20 There was another similar case to PH/19, when a complete host name was
+ given in a host list; looking up its IP address could give an abbreviated
+ form, whereas the current host's name might or might not be abbreviated.
+ The same fix has been applied.
Exim version 4.54
Index: verify.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/verify.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- verify.c 21 Nov 2005 10:24:02 -0000 1.28
+++ verify.c 28 Nov 2005 10:07:55 -0000 1.29
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/verify.c,v 1.28 2005/11/21 10:24:02 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/verify.c,v 1.29 2005/11/28 10:07:55 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2109,9 +2109,7 @@
host_item *hh;
for (hh = &h; hh != NULL; hh = hh->next)
{
- if (Ustrcmp(hh->address, (Ustrchr(hh->address, ':') == NULL)?
- cb->host_ipv4 : cb->host_address) == 0)
- return OK;
+ if (host_is_in_net(hh->address, cb->host_address, 0)) return OK;
}
return FAIL;
}