diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 08:40:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 08:40:29 +0000 |
commit | d6c33feab80875e4e2ab4ec8bf46425a292318bc (patch) | |
tree | 9e325e95e2c785049562a1fefc7e56cf65cd8679 /src/smtpd/smtpd_check.c | |
parent | Adding upstream version 3.8.5. (diff) | |
download | postfix-d6c33feab80875e4e2ab4ec8bf46425a292318bc.tar.xz postfix-d6c33feab80875e4e2ab4ec8bf46425a292318bc.zip |
Adding upstream version 3.8.6.upstream/3.8.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/smtpd/smtpd_check.c')
-rw-r--r-- | src/smtpd/smtpd_check.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/smtpd/smtpd_check.c b/src/smtpd/smtpd_check.c index 7212ccf..093aa06 100644 --- a/src/smtpd/smtpd_check.c +++ b/src/smtpd/smtpd_check.c @@ -2994,6 +2994,7 @@ static int check_server_access(SMTPD_STATE *state, const char *table, struct addrinfo *res; int status; const INET_PROTO_INFO *proto_info; + int server_addr_count = 0; /* * Sanity check. @@ -3145,6 +3146,15 @@ static int check_server_access(SMTPD_STATE *state, const char *table, msg_info("%s: %s host address check: %s", myname, dns_strtype(type), (char *) server->data); for (res = res0; res != 0; res = res->ai_next) { + server_addr_count += 1; + if (server_addr_count > var_dns_rr_list_limit) { + msg_warn("%s: %s server address count limit (%d) exceeded" + " for %s %s -- ignoring the remainder", myname, + dns_strtype(type), var_dns_rr_list_limit, + reply_class, reply_name); + freeaddrinfo(res0); + CHECK_SERVER_RETURN(SMTPD_CHECK_DUNNO); + } if (strchr((char *) proto_info->sa_family_list, res->ai_family) == 0) { if (msg_verbose) msg_info("skipping address family %d for host %s", |