From: W.C.A. Wijngaards Date: Tue, 18 Mar 2025 12:59:53 +0000 (+0100) Subject: - Fix #1251: WSAPoll first argument cannot be NULL. X-Git-Tag: release-1.23.0rc1~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0d20e2d28fc8b9c9a44d2a205ab5393dd7aa679;p=thirdparty%2Funbound.git - Fix #1251: WSAPoll first argument cannot be NULL. --- diff --git a/doc/Changelog b/doc/Changelog index 912faef12..697f0273d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +18 March 2025: Wouter + - Fix #1251: WSAPoll first argument cannot be NULL. + 17 March 2025: Wouter - Fix representation of types GPOS and RESINFO, add rdf type for unquoted str. diff --git a/util/netevent.c b/util/netevent.c index 8f64278c3..998775803 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -442,7 +442,11 @@ comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, int pret; memset(&p, 0, sizeof(p)); p.fd = c->fd; - p.events = POLLOUT | POLLERR | POLLHUP; + p.events = POLLOUT | POLLERR +#ifndef USE_WINSOCK + | POLLHUP +#endif + ; # ifndef USE_WINSOCK pret = poll(&p, 1, SEND_BLOCKED_WAIT_TIMEOUT); # else @@ -496,7 +500,8 @@ comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, #ifndef USE_WINSOCK pret = poll(NULL, 0, (SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); #else - pret = WSAPoll(NULL, 0, (SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); + Sleep((SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); + pret = 0; #endif if(pret < 0 && #ifndef USE_WINSOCK @@ -751,7 +756,11 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet, int pret; memset(&p, 0, sizeof(p)); p.fd = c->fd; - p.events = POLLOUT | POLLERR | POLLHUP; + p.events = POLLOUT | POLLERR +#ifndef USE_WINSOCK + | POLLHUP +#endif + ; # ifndef USE_WINSOCK pret = poll(&p, 1, SEND_BLOCKED_WAIT_TIMEOUT); # else @@ -805,7 +814,8 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet, #ifndef USE_WINSOCK pret = poll(NULL, 0, (SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); #else - pret = WSAPoll(NULL, 0, (SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); + Sleep((SEND_BLOCKED_WAIT_TIMEOUT/10)<<(retries+1)); + pret = 0; #endif if(pret < 0 && #ifndef USE_WINSOCK