--- embedaddon/mtr/ui/asn.c 2021/03/17 00:07:30 1.1.1.2 +++ embedaddon/mtr/ui/asn.c 2023/09/27 11:18:58 1.1.1.3 @@ -207,11 +207,11 @@ static void reverse_host6( { int i; char *b = buff; - for (i = (sizeof(*addr) / 2 - 1); i >= 0; i--, b += 4) /* 64b portion */ + // We need to process the top 64 bits, or 8 bytes. + for (i = 8-1; i >= 0; i--, b += 4, buff_length -= 4) snprintf(b, buff_length, "%x.%x.", addr->s6_addr[i] & 0xf, addr->s6_addr[i] >> 4); - - buff[strlen(buff) - 1] = '\0'; + *--b = 0; } #endif