throw MOADNSException("Unknown record was stored incorrectly, need 3 fields, got "+std::to_string(parts.size())+": "+zone );
const string& relevant=(parts.size() > 2) ? parts[2] : "";
unsigned int total=pdns_stou(parts[1]);
- if(relevant.size()!=2*total)
- throw MOADNSException((boost::format("invalid unknown record length for label %s: size not equal to length field (%d != %d)") % d_dr.d_name.toString() % relevant.size() % (2*total)).str());
+ if(relevant.size() % 2 || relevant.size() / 2 != total)
+ throw MOADNSException((boost::format("invalid unknown record length: size not equal to length field (%d != 2 * %d)") % relevant.size() % total).str());
string out;
out.reserve(total+1);
for(unsigned int n=0; n < total; ++n) {