From d5b5b605c0de1bd6d5d5c1fb96f85966f1d6440d Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Mon, 4 Dec 2017 21:02:49 +0100 Subject: [PATCH] api: epoll_ctl_mod() report EBADF when modifying/deleting invalid socket --- src/port.c | 2 +- test/test-auto-drop-on-close.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/port.c b/src/port.c index 16fbea0..7e6bb06 100644 --- a/src/port.c +++ b/src/port.c @@ -348,7 +348,7 @@ ep_sock_t* ep_port_find_socket(ep_port_t* port_info, SOCKET socket) { ep_sock_t* sock_info = safe_container_of( tree_find(&port_info->sock_tree, socket), ep_sock_t, tree_node); if (sock_info == NULL) - return_error(NULL, ERROR_NOT_FOUND); + return_handle_error(NULL, socket, ERROR_NOT_FOUND); return sock_info; } diff --git a/test/test-auto-drop-on-close.c b/test/test-auto-drop-on-close.c index df2a782..2c38691 100644 --- a/test/test-auto-drop-on-close.c +++ b/test/test-auto-drop-on-close.c @@ -45,12 +45,12 @@ static void check_dropped(HANDLE ephnd, SOCKET sock) { /* Check that EPOLL_CTL_MOD fails. */ r = epoll_ctl(ephnd, EPOLL_CTL_MOD, sock, &ev); check(r < 0); - check(errno == ENOENT); /* TODO: should be EBADF. */ + check(errno == EBADF); /* Check that EPOLL_CTL_DEL fails. */ r = epoll_ctl(ephnd, EPOLL_CTL_DEL, sock, &ev); check(r < 0); - check(errno == ENOENT); /* TODO: should be EBADF. */ + check(errno == EBADF); } int main(void) {