From eaa9e7920e98cd10d24ade07f474ddb4e05dc1ea Mon Sep 17 00:00:00 2001 From: Pavel Punsky Date: Sun, 12 Apr 2026 20:00:20 -0700 Subject: [PATCH] Merge commit from fork Co-authored-by: Claude Opus 4.6 (1M context) --- src/client/ns_turn_msg.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/client/ns_turn_msg.c b/src/client/ns_turn_msg.c index 8f0916b4..19d4ab64 100644 --- a/src/client/ns_turn_msg.c +++ b/src/client/ns_turn_msg.c @@ -1282,21 +1282,27 @@ turn_time_t stun_adjust_allocate_lifetime(turn_time_t lifetime, turn_time_t max_ int stun_attr_get_type(stun_attr_ref attr) { if (attr) { - return (int)(nswap16(((const uint16_t *)attr)[0])); + uint16_t val; + memcpy(&val, attr, sizeof(val)); + return (int)(nswap16(val)); } return -1; } int stun_attr_get_len(stun_attr_ref attr) { if (attr) { - return (int)(nswap16(((const uint16_t *)attr)[1])); + uint16_t val; + memcpy(&val, attr + 2, sizeof(val)); + return (int)(nswap16(val)); } return -1; } const uint8_t *stun_attr_get_value(stun_attr_ref attr) { if (attr) { - const int len = (int)(nswap16(((const uint16_t *)attr)[1])); + uint16_t val; + memcpy(&val, attr + 2, sizeof(val)); + const int len = (int)(nswap16(val)); if (len < 1) { return NULL; } @@ -1307,7 +1313,9 @@ const uint8_t *stun_attr_get_value(stun_attr_ref attr) { int stun_get_requested_address_family(stun_attr_ref attr) { if (attr) { - const int len = (int)(nswap16(((const uint16_t *)attr)[1])); + uint16_t raw_len; + memcpy(&raw_len, attr + 2, sizeof(raw_len)); + const int len = (int)(nswap16(raw_len)); if (len != 4) { return STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_INVALID; }