BUG/MEDIUM: proxy: use aligned allocations for struct proxy_per_tgroup

In 3.2, commit f879b9a18 ("MINOR: proxies: Add a per-thread group field
to struct proxy") introduced struct proxy_per_tgroup that is declared as
thread_aligned, but is allocated using calloc(). Thus it is at risk of
crashing on machines using instructions requiring 64-byte alignment such
as AVX512. Let's use ha_aligned_zalloc_typed() instead of malloc().

For 3.2, we don't have aligned allocations, so instead the THREAD_ALIGNED()
will have to be removed from the struct definition. Alternately, we could
manually align it as is done for fdtab.
This commit is contained in:
Willy Tarreau 2025-11-07 22:10:45 +01:00
parent df9eb2e7b6
commit fb8edd0ce6

View File

@ -1507,7 +1507,7 @@ int proxy_init_per_thr(struct proxy *px)
{
int i;
px->per_tgrp = calloc(global.nbtgroups, sizeof(*px->per_tgrp));
px->per_tgrp = ha_aligned_zalloc_typed(global.nbtgroups, typeof(*px->per_tgrp));
for (i = 0; i < global.nbtgroups; i++)
queue_init(&px->per_tgrp[i].queue, px, NULL);