From d293ebde01fc14dabbd64fd6e42dc837be7b1fad Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Thu, 16 Mar 2023 15:42:28 +0000 Subject: [PATCH] Fix some Windows issues in the quic_reactor An incorrect macro name was being used for Windows detection which meant we were going down a codepath not intended for Windows and thus failing. Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/20514) --- ssl/quic/quic_reactor.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ssl/quic/quic_reactor.c b/ssl/quic/quic_reactor.c index 95a54ad6b7f..9581def5cf4 100644 --- a/ssl/quic/quic_reactor.c +++ b/ssl/quic/quic_reactor.c @@ -126,13 +126,13 @@ static int poll_two_fds(int rfd, int rfd_want_read, int wfd, int wfd_want_write, OSSL_TIME deadline) { -#if defined(OSSL_SYS_WINDOWS) || !defined(POLLIN) +#if defined(OPENSSL_SYS_WINDOWS) || !defined(POLLIN) fd_set rfd_set, wfd_set, efd_set; OSSL_TIME now, timeout; struct timeval tv, *ptv; int maxfd, pres; -# ifndef OSSL_SYS_WINDOWS +# ifndef OPENSSL_SYS_WINDOWS /* * On Windows there is no relevant limit to the magnitude of a fd value (see * above). On *NIX the fd_set uses a bitmap and we must check the limit. @@ -235,11 +235,12 @@ static int poll_two_fds(int rfd, int rfd_want_read, static int poll_descriptor_to_fd(const BIO_POLL_DESCRIPTOR *d, int *fd) { if (d == NULL || d->type == BIO_POLL_DESCRIPTOR_TYPE_NONE) { - *fd = -1; + *fd = INVALID_SOCKET; return 1; } - if (d->type != BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD || d->value.fd < 0) + if (d->type != BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD + || d->value.fd == INVALID_SOCKET) return 0; *fd = d->value.fd; -- 2.47.3