From 306f0e1a1a3ad40ce71abe942f1f98ee722a827e Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Sun, 13 Sep 2026 12:53:30 -0700 Subject: [PATCH] Align opaque values Opaque values are cast to njs_value_t pointers by the public API. Match njs_value_t alignment while retaining the four uint32_t filler fields. UndefinedBehaviorSanitizer reports unaligned njs_value_t accesses. --- src/njs.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/njs.h b/src/njs.h index b33a8568..b6fa1b47 100644 --- a/src/njs.h +++ b/src/njs.h @@ -44,8 +44,9 @@ typedef struct njs_external_s njs_external_t; * sizeof(njs_opaque_value_t) == sizeof(njs_value_t). */ -typedef struct { +typedef union { uint32_t filler[4]; + uint64_t align; } njs_opaque_value_t; /* sizeof(njs_value_t) is 16 bytes. */ -- 2.47.3