From 91ff743df9fcee048cb44dba0c7047df04454dd2 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sat, 20 Jan 2024 01:09:18 +0100 Subject: [PATCH] server.c: Fix wrong priority for do_exit Under some specific circumstances, poll(2) would return a positive integer, but do_exit might had been previously set. This caused libweb to ignore SIGTERM, with the potential risk for an endless loop. --- server.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server.c b/server.c index 3cff970..6167db3 100644 --- a/server.c +++ b/server.c @@ -230,13 +230,13 @@ again: res = poll(fds, n, -1); - if (res < 0) + if (do_exit) + { + *exit = true; + goto end; + } + else if (res < 0) { - if (do_exit) - { - *exit = true; - goto end; - } switch (errno) {