]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Get rid of the pointer arithmetic in `RecordTextReader::xfrName()`
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 20 Nov 2023 15:49:51 +0000 (16:49 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 20 Nov 2023 15:49:51 +0000 (16:49 +0100)
pdns/rcpgenerator.cc

index 7ff9a7be7663d64ba11e2efca1d917bfef3cfe41..6a4569100cd003e7a499b62065fa3a3047d4e62f 100644 (file)
@@ -255,16 +255,19 @@ void RecordTextReader::xfrName(DNSName& val, bool, bool)
   skipSpaces();
   DNSName sval;
 
-  const char* strptr=d_string.c_str();
   string::size_type begin_pos = d_pos;
   while (d_pos < d_end) {
-    if (strptr[d_pos]!='\r' && dns_isspace(strptr[d_pos])) {
+    if (d_string[d_pos]!='\r' && dns_isspace(d_string[d_pos])) {
       break;
     }
 
     d_pos++;
   }
-  sval = DNSName(std::string(strptr+begin_pos, strptr+d_pos));
+
+  {
+    std::string_view view(d_string);
+    sval = DNSName(view.substr(begin_pos, d_pos - begin_pos));
+  }
 
   if (sval.empty()) {
     sval = d_zone;