]> granicus.if.org Git - pdns/commitdiff
better reporting of out of range error
authorbert hubert <bert.hubert@netherlabs.nl>
Mon, 17 Mar 2014 14:50:40 +0000 (15:50 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Mon, 17 Mar 2014 14:50:40 +0000 (15:50 +0100)
pdns/dnsparser.cc

index d82d2d1c4e0e9b7dbf06d14663954d41351cb92a..b0030fdd413e9697bec2e8a9b36f5766be311e27 100644 (file)
@@ -494,6 +494,7 @@ void PacketReader::getLabelFromContent(const vector<uint8_t>& 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)
 {