From 91567562eade07b35200ca916c24c415c4ef4bc4 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Thu, 6 Dec 2012 14:23:34 +0000 Subject: [PATCH] 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 --- pdns/dnswriter.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); -- 2.40.0