diff --git a/impl/src/layer2/ham64.c b/impl/src/layer2/ham64.c index 5895adc..cfb5e72 100644 --- a/impl/src/layer2/ham64.c +++ b/impl/src/layer2/ham64.c @@ -51,7 +51,7 @@ size_t ham64_encode(const char *call, ham64_t *ham64) uint16_t *tmp = ham64->addr; - memset(ham64->addr, 0, 4*sizeof(uint16_t)); + memset(ham64->addr, 0, sizeof(ham64->addr)); while(*call) { uint16_t encoded = char_to_ham64(*call); @@ -137,7 +137,8 @@ const char *ham64_addr_type_to_string(ham64_addr_type_t addr_type) "BROADCAST", "IPV6_MULTICAST", "IPV4_MULTICAST", - "RESERVED"}; + "RESERVED", + }; if(addr_type >= HAM64_NUM_ADDR_TYPES) { return NULL; @@ -173,7 +174,8 @@ ham64_addr_type_t ham64_get_addr_type(const ham64_t *ham64) void ham64_format(const ham64_t *ham64, char *out) { for(uint8_t i = 0; i < ham64->length; i++) { - sprintf(out + 5 * i, "%04X-", ham64->addr[i]); + const char *fmt = (i == 3) ? "%04X" : "%04X-"; + sprintf(out + 5 * i, fmt, ham64->addr[i]); } out[5*ham64->length - 1] = '\0';