blob: 57708b6f716ed47761ef61d69ccb96ae0ea21693 [file] [log] [blame]
commit 04b0ac05377936d121a36873bb63d492cde292c9
Author: Simon Kelley <simon@thekelleys.org.uk>
Date: Mon Apr 6 17:19:13 2015 +0100
Fix crash caused by looking up servers.bind when many servers defined.
diff --git a/src/cache.c b/src/cache.c
index d7bea57..178d654 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -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;