]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
prevent leak of file descriptor if running out of ports for incoming AXFR 7294/head
authorbert hubert <bert.hubert@netherlabs.nl>
Wed, 19 Dec 2018 09:08:39 +0000 (10:08 +0100)
committerGitHub <noreply@github.com>
Wed, 19 Dec 2018 09:08:39 +0000 (10:08 +0100)
pdns/resolver.cc

index ab3dcad0cee6498e348cede08aa68780ec80aab8..fb8c830dbd10952ab2067dec7ee9cb9d4db1d931 100644 (file)
@@ -86,10 +86,11 @@ int makeQuerySocket(const ComboAddress& local, bool udpOrTCP, bool nonLocalBind)
   }
   else {
     // tcp, let the kernel figure out the port
-    // cerr<<"letting kernel pick TCP port"<<endl;
     ourLocal.sin4.sin_port = 0;
-    if(::bind(sock, (struct sockaddr *)&ourLocal, ourLocal.getSocklen()) < 0)
+    if(::bind(sock, (struct sockaddr *)&ourLocal, ourLocal.getSocklen()) < 0) {
+      closesocket(sock);
       throw PDNSException("Resolver binding to local TCP socket on "+ourLocal.toString()+": "+stringerror());
+    }
   }
   return sock;
 }