Snap for 4551672 from d1ba67ece1bce85f60be999572a0b6f1188150d7 to pi-release
Change-Id: I191d5c80c7b9cf6ec7d7304a85b9422531a1e16a
diff --git a/src/rfc1035.c b/src/rfc1035.c
index e440e8a..d4e9bf5 100755
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
@@ -902,8 +902,11 @@
size_t setup_reply(HEADER *header, size_t qlen,
struct all_addr *addrp, unsigned short flags, unsigned long ttl)
{
- unsigned char *p = skip_questions(header, qlen);
-
+ unsigned char *p;
+
+ if (!(p = skip_questions(header, qlen)))
+ return 0;
+
header->qr = 1; /* response */
header->aa = 0; /* authoritive */
header->ra = 1; /* recursion if available */
@@ -917,7 +920,7 @@
header->rcode = NOERROR; /* empty domain */
else if (flags == F_NXDOMAIN)
header->rcode = NXDOMAIN;
- else if (p && flags == F_IPV4)
+ else if (flags == F_IPV4)
{ /* we know the address */
header->rcode = NOERROR;
header->ancount = htons(1);
@@ -925,7 +928,7 @@
add_resource_record(header, NULL, NULL, sizeof(HEADER), &p, ttl, NULL, T_A, C_IN, "4", addrp);
}
#ifdef HAVE_IPV6
- else if (p && flags == F_IPV6)
+ else if (flags == F_IPV6)
{
header->rcode = NOERROR;
header->ancount = htons(1);