]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: queues: Fix arithmetic when feeling non_empty_tgids
authorOlivier Houchard <ohouchard@haproxy.com>
Thu, 15 Jan 2026 03:22:10 +0000 (03:22 +0000)
committerOlivier Houchard <ohouchard@haproxy.com>
Thu, 15 Jan 2026 03:28:04 +0000 (04:28 +0100)
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.

src/queue.c

index 34c0d11b0cce5349b21236f72f4b60800ba115fb..849bd52f396f6dcc4b6689f0887358b3cd698fd4 100644 (file)
@@ -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) {