Sfoglia il codice sorgente

[LibOS] Fix handle leak in epoll_ctl

Martin Schmatz 5 anni fa
parent
commit
38bd8ba208
1 ha cambiato i file con 3 aggiunte e 1 eliminazioni
  1. 3 1
      LibOS/shim/src/sys/shim_epoll.c

+ 3 - 1
LibOS/shim/src/sys/shim_epoll.c

@@ -256,11 +256,13 @@ int shim_do_epoll_ctl (int epfd, int op, int fd,
                     lock(&hdl->lock);
                     LISTP_DEL(epoll_fd, &hdl->epolls, back);
                     unlock(&hdl->lock);
-                    put_handle(epoll_hdl);
 
                     debug("delete handle %p from epoll handle %p\n",
                           hdl, epoll);
 
+                    put_handle(epoll_hdl);
+                    put_handle(hdl);
+
                     LISTP_DEL(epoll_fd, &epoll->fds, list);
                     epoll->nfds--;
                     free(epoll_fd);