Fix crash caused by looking up servers.bind when many servers defined.

This commit is contained in:
Simon Kelley
2015-04-06 17:19:13 +01:00
parent 982faf4024
commit 04b0ac0537
2 changed files with 8 additions and 3 deletions

View File

@@ -75,7 +75,12 @@ version 2.73
Add --tftp-no-fail option. Thanks to Stefan Tomanek for
the patch.
Fix crash caused by looking up servers.bind, CHAOS text record,
when more than about five --servers= lines are in the dnsmasq
config. This causes memory corruption which causes a crash later.
Thanks to Matt Coddington for sterling work chasing this down.
version 2.72
Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.

View File

@@ -1367,7 +1367,7 @@ int cache_make_stat(struct txt_record *t)
}
port = prettyprint_addr(&serv->addr, daemon->addrbuff);
lenp = p++; /* length */
bytes_avail = (p - buff) + bufflen;
bytes_avail = bufflen - (p - buff );
bytes_needed = snprintf(p, bytes_avail, "%s#%d %u %u", daemon->addrbuff, port, queries, failed_queries);
if (bytes_needed >= bytes_avail)
{
@@ -1381,7 +1381,7 @@ int cache_make_stat(struct txt_record *t)
lenp = p - 1;
buff = new;
bufflen = newlen;
bytes_avail = (p - buff) + bufflen;
bytes_avail = bufflen - (p - buff );
bytes_needed = snprintf(p, bytes_avail, "%s#%d %u %u", daemon->addrbuff, port, queries, failed_queries);
}
*lenp = bytes_needed;