]> granicus.if.org Git - pdns/commitdiff
devpollmplexer is leaky
authorJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Fri, 11 Dec 2015 22:15:52 +0000 (17:15 -0500)
committerJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Fri, 11 Dec 2015 22:15:52 +0000 (17:15 -0500)
pdns/devpollmplexer.cc

index a4774b9ad9a8ba3f78d1d2b9c63c216170a00925..490383e6e8a322654bf1bd3a11afb5ef64ca880d 100644 (file)
@@ -102,11 +102,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) {