summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mDNSResponder/Makefile2
-rw-r--r--mDNSResponder/mDNSCore/DNSCommon.c6
-rw-r--r--mDNSResponder/mDNSShared/dns_sd.h2
3 files changed, 6 insertions, 4 deletions
diff --git a/mDNSResponder/Makefile b/mDNSResponder/Makefile
index fa0a4e49..978c8953 100644
--- a/mDNSResponder/Makefile
+++ b/mDNSResponder/Makefile
@@ -16,7 +16,7 @@
include $(MAKEFILEPATH)/pb_makefiles/platform.make
-MVERS = "mDNSResponder-878.50.17"
+MVERS = "mDNSResponder-878.70.2"
VER =
ifneq ($(strip $(GCC_VERSION)),)
diff --git a/mDNSResponder/mDNSCore/DNSCommon.c b/mDNSResponder/mDNSCore/DNSCommon.c
index 750c10e6..597c4cc0 100644
--- a/mDNSResponder/mDNSCore/DNSCommon.c
+++ b/mDNSResponder/mDNSCore/DNSCommon.c
@@ -2770,7 +2770,9 @@ mDNSexport const mDNSu8 *getDomainName(const DNSMessage *const msg, const mDNSu8
case 0x80: debugf("getDomainName: Illegal label length 0x%X in domain name %##s", len, name->c); return(mDNSNULL);
- case 0xC0: offset = (mDNSu16)((((mDNSu16)(len & 0x3F)) << 8) | *ptr++);
+ case 0xC0: if (ptr >= end)
+ { debugf("getDomainName: Malformed compression label (overruns packet end)"); return(mDNSNULL); }
+ offset = (mDNSu16)((((mDNSu16)(len & 0x3F)) << 8) | *ptr++);
if (!nextbyte) nextbyte = ptr; // Record where we got to before we started following pointers
ptr = (mDNSu8 *)msg + offset;
if (ptr < (mDNSu8*)msg || ptr >= end)
@@ -3335,7 +3337,7 @@ mDNSexport mDNSBool SetRData(const DNSMessage *const msg, const mDNSu8 *ptr, con
AssignDomainName(&name, (domainname *)ptr);
ptr += DomainNameLength(&name);
}
- if (!ptr)
+ if (!ptr || ptr >= end)
{
LogInfo("SetRData: Malformed name for TSIG/TKEY type %d", rr->resrec.rrtype);
goto fail;
diff --git a/mDNSResponder/mDNSShared/dns_sd.h b/mDNSResponder/mDNSShared/dns_sd.h
index 94237fb3..0e5c35ee 100644
--- a/mDNSResponder/mDNSShared/dns_sd.h
+++ b/mDNSResponder/mDNSShared/dns_sd.h
@@ -66,7 +66,7 @@
*/
#ifndef _DNS_SD_H
-#define _DNS_SD_H 8785017
+#define _DNS_SD_H 8787002
#ifdef __cplusplus
extern "C" {