]> granicus.if.org Git - pdns/commitdiff
improve out of range reporting
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 26 Mar 2018 18:52:57 +0000 (20:52 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 1 May 2018 15:15:38 +0000 (17:15 +0200)
(cherry picked from commit cccfa59b37d7b4dbe4e2429e495b2196e4244dc3)

pdns/misc.cc

index 16b3908f52adeb0f93fa3290aa6e75a82731655d..3e2ea6117a1fa49b876e2415587f69567eea8878 100644 (file)
@@ -1313,8 +1313,11 @@ unsigned int pdns_stou(const std::string& str, size_t * idx, int base)
   catch(std::invalid_argument& e) {
     throw std::invalid_argument(string(e.what()) + "; (invalid argument during std::stoul); data was \""+str+"\"");
   }
+  catch(std::out_of_range& e) {
+    throw std::out_of_range(string(e.what()) + "; (out of range during std::stoul); data was \""+str+"\"");
+  }
   if (result > std::numeric_limits<unsigned int>::max()) {
-    throw std::out_of_range("stou");
+    throw std::out_of_range("stoul returned result out of unsigned int range; data was \""+str+"\"");
   }
   return static_cast<unsigned int>(result);
 }