From: Matt Caswell Date: Thu, 16 Mar 2023 15:42:28 +0000 (+0000) Subject: Fix some Windows issues in the quic_reactor X-Git-Tag: openssl-3.2.0-alpha1~1131 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d293ebde01fc14dabbd64fd6e42dc837be7b1fad;p=thirdparty%2Fopenssl.git 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) --- 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;