libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

commit 23bd4f82a9d815954f193b7a11f42db806693818
parent 1ad2cf3773b8e3742585172637e9f2aa7432e3dc
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date:   Thu, 13 Aug 2026 16:07:29 +0200

events_process: fixed out-of-bound read in unrealistic cases

Diffstat:
Msrc/mhd2/events_process.c | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mhd2/events_process.c b/src/mhd2/events_process.c @@ -1211,6 +1211,10 @@ select_update_statuses_from_fdsets_and_resume_conn (struct MHD_Daemon *d, if (FD_ISSET (d->net.listen.fd, efds)) { --num_events; +# ifndef MHD_FAVOR_SMALL_CODE + if (FD_ISSET (d->net.listen.fd, rfds)) + --num_events; +# endif /* MHD_FAVOR_SMALL_CODE */ log_listen_broken (d); /* Close the listening socket unless the master daemon should close it */ if (!mhd_D_HAS_MASTER (d)) @@ -1220,10 +1224,6 @@ select_update_statuses_from_fdsets_and_resume_conn (struct MHD_Daemon *d, d->net.listen.is_broken = true; /* Stop monitoring socket to avoid spinning with busy-waiting */ d->net.listen.fd = MHD_INVALID_SOCKET; -# ifndef MHD_FAVOR_SMALL_CODE - if (FD_ISSET (d->net.listen.fd, rfds)) - --num_events; -# endif /* MHD_FAVOR_SMALL_CODE */ } else {