From: Lukáš Ondráček Date: Tue, 1 Oct 2024 13:13:21 +0000 (+0200) Subject: daemon/mmapped: remove padding from header where used X-Git-Tag: v6.0.9~1^2~25 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fenvironments%2Fdocs-develop-rrl-8r8r8r%2Fdeployments%2F5252;p=thirdparty%2Fknot-resolver.git daemon/mmapped: remove padding from header where used --- diff --git a/daemon/defer.c b/daemon/defer.c index 1ff523e39..91fb1295b 100644 --- a/daemon/defer.c +++ b/daemon/defer.c @@ -270,7 +270,11 @@ int defer_init(uv_loop_t *loop) for (size_t c = header.capacity - 1; c > 0; c >>= 1) capacity_log++; size_t size = offsetof(struct defer, kru) + KRU.get_size(capacity_log); - size_t header_size = offsetof(struct defer, kru); + size_t header_size = offsetof(struct defer, using_avx2) + sizeof(header.using_avx2); + kr_assert(header_size == + sizeof(header.capacity) + + sizeof(header.max_decay) + + sizeof(header.using_avx2)); // no undefined padding inside int ret = mmapped_init(&defer_mmapped, "defer", size, &header, header_size); if (ret == MMAPPED_WAS_FIRST) { diff --git a/daemon/ratelimiting.c b/daemon/ratelimiting.c index cd15dc8c5..676fde575 100644 --- a/daemon/ratelimiting.c +++ b/daemon/ratelimiting.c @@ -42,7 +42,6 @@ int ratelimiting_init(const char *mmap_file, size_t capacity, uint32_t instant_l for (size_t c = capacity - 1; c > 0; c >>= 1) capacity_log++; size_t size = offsetof(struct ratelimiting, kru) + KRU.get_size(capacity_log); - size_t header_size = offsetof(struct ratelimiting, v4_prices); struct ratelimiting header = { .capacity = capacity, @@ -52,6 +51,14 @@ int ratelimiting_init(const char *mmap_file, size_t capacity, uint32_t instant_l .using_avx2 = using_avx2() }; + size_t header_size = offsetof(struct ratelimiting, using_avx2) + sizeof(header.using_avx2); + kr_assert(header_size == + sizeof(header.capacity) + + sizeof(header.instant_limit) + + sizeof(header.rate_limit) + + sizeof(header.tc_limit) + + sizeof(header.using_avx2)); // no undefined padding inside + int ret = mmapped_init(&ratelimiting_mmapped, mmap_file, size, &header, header_size); if (ret == MMAPPED_WAS_FIRST) { kr_log_info(SYSTEM, "Initializing rate-limiting...\n");