]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
devpollmplexer is leaky
authorJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Thu, 14 Jan 2016 19:12:07 +0000 (14:12 -0500)
committerJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Thu, 14 Jan 2016 19:12:07 +0000 (14:12 -0500)
closes #3001

pdns/devpollmplexer.cc

index e79bff0a5df1f6a47e121de43304d591c1ba5da0..66983258142efd3747b68376a846ea778626d79b 100644 (file)
@@ -104,11 +104,15 @@ int DevPollFDMultiplexer::run(struct timeval* now)
   int ret=ioctl(d_devpollfd, DP_POLL, &dvp); 
   gettimeofday(now,0); // MANDATORY!
   
-  if(ret < 0 && errno!=EINTR)
+  if(ret < 0 && errno!=EINTR) {
+    delete[] dvp.dp_fds;
     throw FDMultiplexerException("/dev/poll returned error: "+stringerror());
+  }
 
-  if(ret < 1) // thanks AB!
+  if(ret < 1) { // thanks AB!
+    delete[] dvp.dp_fds;
     return 0;
+  }
 
   d_inrun=true;
   for(int n=0; n < ret; ++n) {