From 69a297fd22f8d69b3033e20760c68ad1cacc80bd Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Mon, 4 Dec 2017 20:06:16 +0100 Subject: [PATCH] port: properly propagate CreateIoCompletionPort() error --- src/port.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/port.c b/src/port.c index 38228a5..16fbea0 100644 --- a/src/port.c +++ b/src/port.c @@ -27,6 +27,14 @@ static void _ep_port_free(ep_port_t* port) { free(port); } +static HANDLE _ep_port_create_iocp(void) { + HANDLE iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); + if (iocp == NULL) + return_error(NULL); + + return iocp; +} + ep_port_t* ep_port_new(HANDLE* iocp_out) { ep_port_t* port_info; HANDLE iocp; @@ -35,8 +43,8 @@ ep_port_t* ep_port_new(HANDLE* iocp_out) { if (port_info == NULL) goto err1; - iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); - if (iocp == INVALID_HANDLE_VALUE) + iocp = _ep_port_create_iocp(); + if (iocp == NULL) goto err2; memset(port_info, 0, sizeof *port_info);