From: bert hubert Date: Mon, 17 Mar 2014 14:50:40 +0000 (+0100) Subject: better reporting of out of range error X-Git-Tag: rec-3.6.0-rc1~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2bc83940b5f2df89e032e62f4839783f9ed9142d;p=thirdparty%2Fpdns.git better reporting of out of range error --- diff --git a/pdns/dnsparser.cc b/pdns/dnsparser.cc index d82d2d1c4e..b0030fdd41 100644 --- a/pdns/dnsparser.cc +++ b/pdns/dnsparser.cc @@ -494,6 +494,7 @@ void PacketReader::getLabelFromContent(const vector& content, uint16_t& } void PacketReader::xfrBlob(string& blob) +try { if(d_recordlen && !(d_pos == (d_startrecordpos + d_recordlen))) blob.assign(&d_content.at(d_pos), &d_content.at(d_startrecordpos + d_recordlen - 1 ) + 1); @@ -502,6 +503,10 @@ void PacketReader::xfrBlob(string& blob) d_pos = d_startrecordpos + d_recordlen; } +catch(...) +{ + throw std::out_of_range("xfrBlob out of range"); +} void PacketReader::xfrBlob(string& blob, int length) {