From: Olivier Houchard Date: Thu, 15 Jan 2026 03:22:10 +0000 (+0000) Subject: BUG/MEDIUM: queues: Fix arithmetic when feeling non_empty_tgids X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6249698840a92639077e323bb5cc5c27a4825698;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: queues: Fix arithmetic when feeling non_empty_tgids Fix the arithmetic when pre-filling non_empty_tgids when we still have more than 32/64 thread groups left, to get the right index, we of course have to divide the number of thread groups by the number of bits in a long. This bug was introduced by commit 7e1fed4b7a8b862bf7722117f002ee91a836beb5, but hopefully was not hit because it requires to have at least as much thread groups as there are bits in a long, which is impossible on 64bits machines, as MAX_TGROUPS is still 32. --- diff --git a/src/queue.c b/src/queue.c index 34c0d11b0..849bd52f3 100644 --- a/src/queue.c +++ b/src/queue.c @@ -396,7 +396,7 @@ int process_srv_queue(struct server *s) while (i >= LONGBITS) { - non_empty_tgids[global.nbtgroups - i] = ULONG_MAX; + non_empty_tgids[(global.nbtgroups - i) / LONGBITS] = ULONG_MAX; i -= LONGBITS; } while (i > 0) {