diff -Naru c-ares-1.15.0/ares_parse_a_reply.c c-ares-1.15.0_patch/ares_parse_a_reply.c --- c-ares-1.15.0/ares_parse_a_reply.c 2017-07-03 17:04:19.000000000 +0800 +++ c-ares-1.15.0_patch/ares_parse_a_reply.c 2021-07-26 16:20:35.986193500 +0800 @@ -221,7 +221,8 @@ if (addrttls[i].ttl > cname_ttl) addrttls[i].ttl = cname_ttl; } - *naddrttls = n; + /* Truncated to at most *naddrttls entries */ + *naddrttls = (n > *naddrttls) ? *naddrttls : n; } if (aliases) aliases[naliases] = NULL; diff -Naru c-ares-1.15.0/ares_parse_aaaa_reply.c c-ares-1.15.0_patch/ares_parse_aaaa_reply.c --- c-ares-1.15.0/ares_parse_aaaa_reply.c 2017-07-03 17:04:19.000000000 +0800 +++ c-ares-1.15.0_patch/ares_parse_aaaa_reply.c 2021-07-26 16:21:10.314711500 +0800 @@ -221,7 +221,8 @@ if (addrttls[i].ttl > cname_ttl) addrttls[i].ttl = cname_ttl; } - *naddrttls = n; + /* Truncated to at most *naddrttls entries */ + *naddrttls = (n > *naddrttls) ? *naddrttls : n; } if (aliases) aliases[naliases] = NULL;