From 9e6435758a4e52607b9c2709d0e6d47890ef7c68 Mon Sep 17 00:00:00 2001 From: Guido Casati Date: Mon, 26 Aug 2024 10:13:18 +0200 Subject: [PATCH] Wrap multi-statement macros ENCODE_U8() and ENCODE_U32() in do { ... } while (0) statements --- openair3/NAS/COMMON/UTIL/TLVEncoder.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openair3/NAS/COMMON/UTIL/TLVEncoder.h b/openair3/NAS/COMMON/UTIL/TLVEncoder.h index 8080afbd5f..8b85185361 100644 --- a/openair3/NAS/COMMON/UTIL/TLVEncoder.h +++ b/openair3/NAS/COMMON/UTIL/TLVEncoder.h @@ -24,9 +24,11 @@ #include // htonl, htons -#define ENCODE_U8(buffer, value, size) \ - *(uint8_t*)(buffer) = value; \ - size += sizeof(uint8_t) +#define ENCODE_U8(buffer, value, size) \ + do { \ + *(uint8_t*)(buffer) = value; \ + size += sizeof(uint8_t); \ + } while (0) /* Safely encodes a 16-bit value into a buffer, handling misalignment by memcpy 2 bytes to buffer in network @@ -49,11 +51,11 @@ } while (0) #define ENCODE_U32(buffer, value, size) \ - { \ + do { \ uint32_t tmp = htonl(value); \ memcpy(buffer, &tmp, sizeof(tmp)); \ - } \ - size += sizeof(uint32_t) + size += sizeof(uint32_t); \ + } while (0) #define IES_ENCODE_U8(buffer, encoded, value) \ ENCODE_U8(buffer + encoded, value, encoded)