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:
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
{