]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Fix coverity nits 5176/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 16 Feb 2017 12:59:54 +0000 (13:59 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 16 Mar 2017 17:36:14 +0000 (18:36 +0100)
(cherry picked from commit f6a8107761b40efcf7512e9aec9a75d1ba1de703)

modules/gpgsqlbackend/spgsql.cc
pdns/dbdnsseckeeper.cc
pdns/dnsdist-tcp.cc
pdns/dnspacket.cc
pdns/rfc2136handler.cc

index ed80d4c53bc3bbeaf5a269339d692a6f15da0f3f..96eda6c5db669083288ff00c455a39a6efdc6476 100644 (file)
@@ -32,7 +32,6 @@
 #include "pdns/namespaces.hh"
 #include <algorithm>
 
-
 class SPgSQLStatement: public SSqlStatement
 {
 public:
@@ -47,6 +46,11 @@ public:
     paramValues = NULL;
     paramLengths = NULL;
     d_do_commit = false;
+    d_paridx = 0;
+    d_residx = 0;
+    d_resnum = 0;
+    d_fnum = 0;
+    d_cur_set = 0;
   }
 
   SSqlStatement* bind(const string& name, bool value) { return bind(name, string(value ? "t" : "f")); }
index 14e47373d4a12684d2c50c44fb9a52688481dfc5..f115e018bcfdcaf9dab37349a154e66f187f7eb4 100644 (file)
@@ -257,9 +257,7 @@ bool DNSSECKeeper::getNSEC3PARAM(const DNSName& zname, NSEC3PARAMRecordContent*
 
   static int maxNSEC3Iterations=::arg().asNum("max-nsec3-iterations");
   if(ns3p) {
-    NSEC3PARAMRecordContent* tmp=dynamic_cast<NSEC3PARAMRecordContent*>(DNSRecordContent::mastermake(QType::NSEC3PARAM, 1, value));
-    *ns3p = *tmp;
-    delete tmp;
+    *ns3p = NSEC3PARAMRecordContent(value);
     if (ns3p->d_iterations > maxNSEC3Iterations) {
       ns3p->d_iterations = maxNSEC3Iterations;
       L<<Logger::Error<<"Number of NSEC3 iterations for zone '"<<zname<<"' is above 'max-nsec3-iterations'. Value adjusted to: "<<maxNSEC3Iterations<<endl;
index e57f8064f22a58fc5f48d11e6b7267d666862628..d7814ddfee3b07737d27035fafb2628068903f4f 100644 (file)
@@ -484,8 +484,10 @@ void* tcpClientThread(int pipefd)
   drop:;
     
     vinfolog("Closing TCP client connection with %s", ci.remote.toStringWithPort());
-    close(ci.fd); 
-    ci.fd=-1;
+    if (ci.fd >= 0) {
+      close(ci.fd);
+    }
+    ci.fd = -1;
     if (ds && outstanding) {
       outstanding = false;
       --ds->outstanding;
index 923f45e7c95e8c8204f3d562f86a3c222c0d5419..e1583ca342314b88f8e0c920fc05c55a47280b1c 100644 (file)
@@ -128,6 +128,8 @@ DNSPacket::DNSPacket(const DNSPacket &orig)
   d_rawpacket=orig.d_rawpacket;
   d_tsig_algo=orig.d_tsig_algo;
   d=orig.d;
+
+  d_isQuery = orig.d_isQuery;
 }
 
 void DNSPacket::setRcode(int v)
index f545935a7a85e722553c2a4e051f13a35f098e72..9e4df0b30cc91b64296c46e6b4562048b793950d 100644 (file)
@@ -651,10 +651,10 @@ int PacketHandler::forwardPacket(const string &msgPrefix, DNSPacket *p, DomainIn
       continue;
     }
 
-    char lenBuf[2];
-    int recvRes;
+    unsigned char lenBuf[2];
+    ssize_t recvRes;
     recvRes = recv(sock, &lenBuf, sizeof(lenBuf), 0);
-    if (recvRes < 0) {
+    if (recvRes < 0 || static_cast<size_t>(recvRes) < sizeof(lenBuf)) {
       L<<Logger::Error<<msgPrefix<<"Could not receive data (length) from master at "<<remote.toStringWithPort()<<", error:"<<stringerror()<<endl;
       try {
         closesocket(sock);
@@ -664,8 +664,7 @@ int PacketHandler::forwardPacket(const string &msgPrefix, DNSPacket *p, DomainIn
       }
       continue;
     }
-    int packetLen = lenBuf[0]*256+lenBuf[1];
-
+    size_t packetLen = lenBuf[0]*256+lenBuf[1];
 
     char buf[packetLen];
     recvRes = recv(sock, &buf, packetLen, 0);
@@ -687,7 +686,7 @@ int PacketHandler::forwardPacket(const string &msgPrefix, DNSPacket *p, DomainIn
     }
 
     try {
-      MOADNSParser mdp(false, buf, recvRes);
+      MOADNSParser mdp(false, buf, static_cast<unsigned int>(recvRes));
       L<<Logger::Info<<msgPrefix<<"Forward update message to "<<remote.toStringWithPort()<<", result was RCode "<<mdp.d_header.rcode<<endl;
       return mdp.d_header.rcode;
     }