]> granicus.if.org Git - pdns/commitdiff
shave a whole bunch of replace_all calls & resulting allocations
authorbert hubert <bert.hubert@netherlabs.nl>
Thu, 15 Jan 2015 12:08:16 +0000 (13:08 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Thu, 15 Jan 2015 12:08:16 +0000 (13:08 +0100)
pdns/dnsparser.cc

index 776b51a521a0e59eb9a9290a2665a50d710d7400..f6ca6b6b623c297c03efb144097c24d6b134da4c 100644 (file)
@@ -531,9 +531,11 @@ string simpleCompress(const string& elabel, const string& root)
 {
   string label=elabel;
   // FIXME: this relies on the semi-canonical escaped output from getLabelFromContent
-  boost::replace_all(label, "\\.", ".");
-  boost::replace_all(label, "\\032", " ");
-  boost::replace_all(label, "\\\\", "\\"); 
+  if(strchr(label.c_str(), '\\')) {
+    boost::replace_all(label, "\\.", ".");
+    boost::replace_all(label, "\\032", " ");
+    boost::replace_all(label, "\\\\", "\\");   
+  }
   typedef vector<pair<unsigned int, unsigned int> > parts_t;
   parts_t parts;
   vstringtok(parts, label, ".");