From 12514c09b2762d95ff5ed07ed0648e78a1995d6f Mon Sep 17 00:00:00 2001 From: sg Date: Wed, 4 Mar 2015 20:58:37 +0100 Subject: [PATCH] Fixed bug #39956 (netif_create_ip6_linklocal_address out of bounds access of netif::hwaddr) --- src/core/netif.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/core/netif.c b/src/core/netif.c index e704495c..02227f86 100644 --- a/src/core/netif.c +++ b/src/core/netif.c @@ -884,14 +884,13 @@ netif_create_ip6_linklocal_address(struct netif * netif, u8_t from_mac_48bit) ((u32_t)(netif->hwaddr[3]) << 16) | ((u32_t)(netif->hwaddr[4]) << 8) | (netif->hwaddr[5])); - } - else { + } else { /* Use hwaddr directly as interface ID. */ netif->ip6_addr[0].addr[2] = 0; netif->ip6_addr[0].addr[3] = 0; addr_index = 3; - for (i = 0; i < 8; i++) { + for (i = 0; (i < 8) && (i < netif->hwaddr_len); i++) { if (i == 4) { addr_index--; }