From e205435056770826b349e171f3d3aebe303e0119 Mon Sep 17 00:00:00 2001 From: Pawel Zmarzly Date: Tue, 31 Mar 2026 13:52:26 +0000 Subject: [PATCH] lib: cgen: make _bf_round_next_power_of_2 correct size_t can be 32-bit or 64-bit integer. And 2**0 should be 1. --- src/libbpfilter/cgen/program.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libbpfilter/cgen/program.c b/src/libbpfilter/cgen/program.c index 84f8d7b5..423462ee 100644 --- a/src/libbpfilter/cgen/program.c +++ b/src/libbpfilter/cgen/program.c @@ -65,12 +65,18 @@ static inline size_t _bf_round_next_power_of_2(size_t value) { + if (value == 0) + return 1; + value--; value |= value >> 1; value |= value >> 2; value |= value >> 4; value |= value >> 8; value |= value >> 16; +#if SIZE_MAX > 0xFFFFFFFFU + value |= value >> 32; +#endif return ++value; }