Procházet zdrojové kódy

[LibOS] Fix handle leak in epoll_ctl

Martin Schmatz před 6 roky
rodič
revize
38bd8ba208
1 změnil soubory, kde provedl 3 přidání a 1 odebrání
  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);