]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dumresp: Use the correct return type for recvfrom()
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 29 May 2019 12:19:27 +0000 (14:19 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 29 May 2019 12:19:27 +0000 (14:19 +0200)
Otherwise we can't correctly process error codes.
Reported by Coverity (CID 1401645).

pdns/dumresp.cc

index 354eba7461bb2172d0f6d587e8ea1d2108c8429c..5d457dc47f6f0888fb416571ca5eb333967c1b30 100644 (file)
@@ -202,12 +202,12 @@ try
   auto dh = reinterpret_cast<struct dnsheader*>(buffer);
 
   for(;;) {
-    uint16_t len = recvfrom(s.getHandle(), buffer, sizeof(buffer), 0, reinterpret_cast<struct sockaddr*>(&rem), &socklen);
+    ssize_t len = recvfrom(s.getHandle(), buffer, sizeof(buffer), 0, reinterpret_cast<struct sockaddr*>(&rem), &socklen);
 
     if(len < 0)
       unixDie("recvfrom");
 
-    if (len < sizeof(dnsheader))
+    if (static_cast<size_t>(len) < sizeof(dnsheader))
       unixDie("too small " + std::to_string(len));
 
     if(dh->qr)