From b9ef55d56dfc90db6ab1d845710d7e028ba50029 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Mon, 8 Sep 2025 11:25:39 +0200 Subject: [PATCH] MINOR: stats-file: use explicit unsigned integer bitshift for user slots As reported in GH #3104, there remained a place where (1 << shift was used to set or remove bits from uint64_t users bitfield. It is incorrect and could lead to bugs for values > 32 bits. Instead, let's use 1ULL to ensure the operation remains 64bits consistent. No backport needed. --- src/stats-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stats-file.c b/src/stats-file.c index 4f74c3062..578646cd2 100644 --- a/src/stats-file.c +++ b/src/stats-file.c @@ -566,7 +566,7 @@ static struct shm_stats_file_object *shm_stats_file_reuse_object(void) free = 1; // consider all users are inactive for now while (slot < sizeof(shm_stats_file_hdr->slots) / sizeof(shm_stats_file_hdr->slots[0])) { - if ((users & (1 << slot)) && + if ((users & (1ULL << slot)) && !shm_stats_file_slot_isfree(shm_stats_file_hdr, slot)) { /* user still alive, so supposedly making use of it */ free = 0;