From: Otto Moerbeek Date: Tue, 17 Sep 2019 15:05:31 +0000 (+0200) Subject: Fix out-of-bound access for zero length "serialized" string. X-Git-Tag: auth-4.2.2~7^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F8612%2Fhead;p=thirdparty%2Fpdns.git Fix out-of-bound access for zero length "serialized" string. --- diff --git a/pdns/dnsparser.cc b/pdns/dnsparser.cc index f89ff3f67a..4ff718711d 100644 --- a/pdns/dnsparser.cc +++ b/pdns/dnsparser.cc @@ -114,7 +114,10 @@ shared_ptr DNSRecordContent::unserialize(const DNSName& qname, drh.d_clen=htons(serialized.size()); memcpy(&packet[pos], &drh, sizeof(drh)); pos+=sizeof(drh); - memcpy(&packet[pos], serialized.c_str(), serialized.size()); pos+=(uint16_t)serialized.size(); + if (serialized.size() > 0) { + memcpy(&packet[pos], serialized.c_str(), serialized.size()); + pos += (uint16_t) serialized.size(); + } MOADNSParser mdp(false, (char*)&*packet.begin(), (unsigned int)packet.size()); shared_ptr ret= mdp.d_answers.begin()->first.d_content;