From: Peter van Dijk Date: Thu, 6 Dec 2012 14:23:34 +0000 (+0000) Subject: make DNSPacketWriter::xfrLabel error out on empty labels in names X-Git-Tag: auth-3.2-rc2~29 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91567562eade07b35200ca916c24c415c4ef4bc4;p=pdns make DNSPacketWriter::xfrLabel error out on empty labels in names git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2972 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/pdns/dnswriter.cc b/pdns/dnswriter.cc index ff5867a3a..d48e95e14 100644 --- a/pdns/dnswriter.cc +++ b/pdns/dnswriter.cc @@ -250,7 +250,10 @@ void DNSPacketWriter::xfrLabel(const string& Label, bool compress) pos+=(part.size())+1; } else { - d_record.push_back((char)(i->second - i->first)); + char labelsize=(char)(i->second - i->first); + if(!labelsize) // empty label in the middle of name + throw MOADNSException("DNSPacketWriter::xfrLabel() found empty label in the middle of name"); + d_record.push_back(labelsize); unsigned int len=d_record.size(); d_record.resize(len + i->second - i->first); memcpy(((&*d_record.begin()) + len), label.c_str() + i-> first, i->second - i->first);