diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-06-18 13:05:54 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-06-23 18:13:59 +0200 |
commit | 0a1f82a3464e81131200f6fc54d24faa0ff41830 (patch) | |
tree | e7220694e25c16fe84a207831e4106d076734222 /mDNSResponder/mDNSCore | |
parent | mDNSResponder: Update to v878.50.17 (diff) | |
download | rtems-libbsd-0a1f82a3464e81131200f6fc54d24faa0ff41830.tar.bz2 |
mDNSResponder: Update to v878.70.2
The sources can be obtained via:
https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.70.2.tar.gz
Update #4010.
Diffstat (limited to 'mDNSResponder/mDNSCore')
-rw-r--r-- | mDNSResponder/mDNSCore/DNSCommon.c | 6 |
1 files changed, 4 insertions, 2 deletions
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; |