From 35ad85188b28bcfd13c4e286eb797df6779281ad Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 28 Sep 2025 22:21:04 -0700 Subject: defs: Fix incorrect define of NNI_PUTLEXX macros. This was responsible for breaking DTLS, and likely other things we never noticed, if the pointer passed in was not already a uint8_t *. --- src/core/defs.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/core/defs.h b/src/core/defs.h index 2ad489f6..1cfeeaa4 100644 --- a/src/core/defs.h +++ b/src/core/defs.h @@ -127,28 +127,28 @@ typedef void (*nni_cb)(void *); #define NNI_PUT16LE(ptr, u) \ do { \ - (ptr)[1] = (uint8_t) (((uint16_t) (u)) >> 8u); \ - (ptr)[0] = (uint8_t) ((uint16_t) (u)); \ + ((uint8_t *)ptr)[1] = (uint8_t) (((uint16_t) (u)) >> 8u); \ + ((uint8_t *)ptr)[0] = (uint8_t) ((uint16_t) (u)); \ } while (0) #define NNI_PUT32LE(ptr, u) \ do { \ - (ptr)[3] = (uint8_t) (((uint32_t) (u)) >> 24u); \ - (ptr)[2] = (uint8_t) (((uint32_t) (u)) >> 16u); \ - (ptr)[1] = (uint8_t) (((uint32_t) (u)) >> 8u); \ - (ptr)[0] = (uint8_t) ((uint32_t) (u)); \ + ((uint8_t *)ptr)[3] = (uint8_t) (((uint32_t) (u)) >> 24u); \ + ((uint8_t *)ptr)[2] = (uint8_t) (((uint32_t) (u)) >> 16u); \ + ((uint8_t *)ptr)[1] = (uint8_t) (((uint32_t) (u)) >> 8u); \ + ((uint8_t *)ptr)[0] = (uint8_t) ((uint32_t) (u)); \ } while (0) #define NNI_PUT64LE(ptr, u) \ do { \ - (ptr)[7] = (uint8_t) (((uint64_t) (u)) >> 56u); \ - (ptr)[6] = (uint8_t) (((uint64_t) (u)) >> 48u); \ - (ptr)[5] = (uint8_t) (((uint64_t) (u)) >> 40u); \ - (ptr)[4] = (uint8_t) (((uint64_t) (u)) >> 32u); \ - (ptr)[3] = (uint8_t) (((uint64_t) (u)) >> 24u); \ - (ptr)[2] = (uint8_t) (((uint64_t) (u)) >> 16u); \ - (ptr)[1] = (uint8_t) (((uint64_t) (u)) >> 8u); \ - (ptr)[0] = (uint8_t) ((uint64_t) (u)); \ + ((uint8_t *)ptr)[7] = (uint8_t) (((uint64_t) (u)) >> 56u); \ + ((uint8_t *)ptr)[6] = (uint8_t) (((uint64_t) (u)) >> 48u); \ + ((uint8_t *)ptr)[5] = (uint8_t) (((uint64_t) (u)) >> 40u); \ + ((uint8_t *)ptr)[4] = (uint8_t) (((uint64_t) (u)) >> 32u); \ + ((uint8_t *)ptr)[3] = (uint8_t) (((uint64_t) (u)) >> 24u); \ + ((uint8_t *)ptr)[2] = (uint8_t) (((uint64_t) (u)) >> 16u); \ + ((uint8_t *)ptr)[1] = (uint8_t) (((uint64_t) (u)) >> 8u); \ + ((uint8_t *)ptr)[0] = (uint8_t) ((uint64_t) (u)); \ } while (0) #define NNI_GET16LE(ptr, v) \ -- cgit v1.2.3-70-g09d2