diff --git a/src/netif/ppp/eui64.c b/src/netif/ppp/eui64.c index e23a34e8..e042eb4c 100644 --- a/src/netif/ppp/eui64.c +++ b/src/netif/ppp/eui64.c @@ -45,9 +45,9 @@ * eui64_ntoa - Make an ascii representation of an interface identifier */ char *eui64_ntoa(eui64_t e) { - static char buf[32]; + static char buf[20]; - snprintf(buf, 32, "%02x%02x:%02x%02x:%02x%02x:%02x%02x", + sprintf(buf, "%02x%02x:%02x%02x:%02x%02x:%02x%02x", e.e8[0], e.e8[1], e.e8[2], e.e8[3], e.e8[4], e.e8[5], e.e8[6], e.e8[7]); return buf; diff --git a/src/netif/ppp/ipv6cp.c b/src/netif/ppp/ipv6cp.c index 74b0cc6a..eba006fe 100644 --- a/src/netif/ppp/ipv6cp.c +++ b/src/netif/ppp/ipv6cp.c @@ -412,9 +412,12 @@ printifaceid(opt, printer, arg) static char * llv6_ntoa(eui64_t ifaceid) { - static char b[64]; + static char b[26]; + + sprintf(b, "fe80::%02x%02x:%02x%02x:%02x%02x:%02x%02x", + ifaceid.e8[0], ifaceid.e8[1], ifaceid.e8[2], ifaceid.e8[3], + ifaceid.e8[4], ifaceid.e8[5], ifaceid.e8[6], ifaceid.e8[7]); - sprintf(b, "fe80::%s", eui64_ntoa(ifaceid)); return b; }