[exim-cvs] Fix host_name_lookup (Close 2747)

Inizio della pagina
Delete this message
Reply to this message
Autore: Exim Git Commits Mailing List
Data:  
To: exim-cvs
Oggetto: [exim-cvs] Fix host_name_lookup (Close 2747)
Gitweb: https://git.exim.org/exim.git/commitdiff/d4bc023436e4cce7c23c5f8bb5199e178b4cc743
Commit:     d4bc023436e4cce7c23c5f8bb5199e178b4cc743
Parent:     159cf206c97f876b07829d92db2217689745c1e8
Author:     Heiko Schlittermann (HS12-RIPE) <hs@???>
AuthorDate: Sun May 16 19:11:19 2021 +0200
Committer:  Heiko Schlittermann (HS12-RIPE) <hs@???>
CommitDate: Mon May 17 12:09:31 2021 +0200


    Fix host_name_lookup (Close 2747)


    Thanks to Nico R for providing a reproducing configuration.


            host_lookup             = *
            message_size_limit      = ${if def:sender_host_name {32M}{32M}}
            acl_smtp_connect        = acl_smtp_connect
            acl_smtp_rcpt           = acl_smtp_rcpt


            begin acl
              acl_smtp_connect:
                    warn ratelimit = 256 / 1m / per_conn
                    accept


              acl_smtp_rcpt:
                    accept hosts = 127.0.0.*


            begin routers
            null:
              driver          = accept
              transport       = null


            begin transports
            null:
              driver          = appendfile
              file            = /dev/null


    Tested with


            swaks -f mailbox@??? -t mailbox@??? --pipe 'exim -bh 127.0.0.1 -C /opt/exim/etc/exim-bug.conf'


    The IP must have a PTR to "localhost." to reproduce it.


    (cherry picked from commit 20812729e3e47a193a21d326ecd036d67a8b2724)
---
 src/src/host.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


diff --git a/src/src/host.c b/src/src/host.c
index 5e66517..e11931b 100644
--- a/src/src/host.c
+++ b/src/src/host.c
@@ -1582,7 +1582,7 @@ Put it in permanent memory. */

   if (hosts->h_aliases)
     {
-    int count = 1;
+    int count = 1;  /* need 1 more for terminating NULL */
     uschar **ptr;


     for (uschar ** aliases = USS hosts->h_aliases; *aliases; aliases++) count++;
@@ -1691,7 +1691,7 @@ while ((ordername = string_nextinlist(&list, &sep, NULL, 0)))
       {
       uschar **aptr = NULL;
       int ssize = 264;
-      int count = 0;
+      int count = 1;  /* need 1 more for terminating NULL */
       int old_pool = store_pool;


       sender_host_dnssec = dns_is_secure(dnsa);