]> granicus.if.org Git - pdns/commitdiff
Fix minor issues reported by `cppcheck`
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 2 Mar 2017 14:07:56 +0000 (15:07 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 2 Mar 2017 14:52:21 +0000 (15:52 +0100)
pdns/arguments.cc
pdns/iputils.hh
pdns/nproxy.cc
pdns/pdns_recursor.cc
pdns/qtype.cc

index 491e018b80b1eff470bc31dde4e901c3a96bdce9..10c522ab7e1c78ade0a16136d0ec23ae5877c679 100644 (file)
@@ -495,6 +495,7 @@ void ArgvMap::gatherIncludes(std::vector<std::string> &extraConfigs) {
         // ensure it's readable file
         if (stat(namebuf.str().c_str(), &st) || !S_ISREG(st.st_mode)) {
           L << Logger::Error << namebuf.str() << " is not a file" << std::endl;
+          closedir(dir);
           throw ArgException(namebuf.str() + " does not exist!");
         }
         extraConfigs.push_back(namebuf.str());
index 4d3a2d4f253900f0e1b98848e5bf813df540907d..15be20d832a096df3318b615004612798dfdbcaa 100644 (file)
@@ -710,8 +710,12 @@ public:
         bits++;
       }
       if (node) {
-        for(auto it = _nodes.begin(); it != _nodes.end(); it++)
-           if (node->node4.get() == *it) _nodes.erase(it);
+        for(auto it = _nodes.begin(); it != _nodes.end(); ) {
+          if (node->node4.get() == *it)
+            it = _nodes.erase(it);
+          else
+            it++;
+        }
         node->node4.reset();
       }
     } else {
@@ -731,8 +735,13 @@ public:
         bits++;
       }
       if (node) {
-        for(auto it = _nodes.begin(); it != _nodes.end(); it++)
-           if (node->node6.get() == *it) _nodes.erase(it);
+        for(auto it = _nodes.begin(); it != _nodes.end(); ) {
+          if (node->node6.get() == *it)
+            it = _nodes.erase(it);
+          else
+            it++;
+        }
+
         node->node6.reset();
       }
     }
index cf91e0a03019cdbe1b208581c6112bca444a30da..b31387a73bbeb928b454e4c0476fad86feb97584 100644 (file)
@@ -78,9 +78,11 @@ try
 {
   char buffer[1500];
   struct NotificationInFlight nif;
+  /* make sure we report enough room for IPv6 */
+  nif.source.sin4.sin_family = AF_INET6;
   nif.origSocket = fd;
 
-  socklen_t socklen=sizeof(nif.source);
+  socklen_t socklen=nif.source.getSocklen();
 
   int res=recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&nif.source, &socklen);
   if(!res)
@@ -149,8 +151,10 @@ try
 {
   char buffer[1500];
   struct NotificationInFlight nif;
+  /* make sure we report enough room for IPv6 */
+  nif.source.sin4.sin_family = AF_INET6;
 
-  socklen_t socklen=sizeof(nif.source);
+  socklen_t socklen=nif.source.getSocklen();
 
   int len=recvfrom(fd, buffer, sizeof(buffer), 0, (struct sockaddr*)&nif.source, &socklen);
   if(!len)
index 1776ccf15e327ecbb0da2e825be5f7509d48daae..ed6cfdfb2eb438580c21c76a3c3e8953c295dcd8 100644 (file)
@@ -2169,9 +2169,12 @@ void handlePipeRequest(int fd, FDMultiplexer::funcparam_t& var)
     if(g_logCommonErrors)
       L<<Logger::Error<<"PIPE function we executed created PDNS exception: "<<e.reason<<endl; // but what if they wanted an answer.. we send 0
   }
-  if(tmsg->wantAnswer)
-    if(write(g_pipes[t_id].writeFromThread, &resp, sizeof(resp)) != sizeof(resp))
+  if(tmsg->wantAnswer) {
+    if(write(g_pipes[t_id].writeFromThread, &resp, sizeof(resp)) != sizeof(resp)) {
+      delete tmsg;
       unixDie("write to thread pipe returned wrong size or error");
+    }
+  }
 
   delete tmsg;
 }
index 3ea400cf69683010b5006ba94283d17558212a8c..31f383124ea86a8ad11e9e57e8145f708bc8a2ea 100644 (file)
@@ -110,8 +110,7 @@ QType &QType::operator=(const string &s)
 }
 
 
-QType::QType(uint16_t n)
+QType::QType(uint16_t n): QType()
 {
-  QType();
   code=n;
 }