From 14d899bf83e8b33dc6cd9b2afac8001cdb37a1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20G=C3=BCndo=C4=9Fan?= Date: Sat, 12 Sep 2015 13:11:01 +0200 Subject: [PATCH] ndp: assertify pio prefix len check and include 0 and 128 --- sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c b/sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c index fe6a892076..4a3158a2cd 100644 --- a/sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c +++ b/sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c @@ -346,8 +346,9 @@ void gnrc_ndp_internal_send_rtr_sol(kernel_pid_t iface, ipv6_addr_t *dst) static bool _pio_from_iface_addr(gnrc_pktsnip_t **res, gnrc_ipv6_netif_addr_t *addr, gnrc_pktsnip_t *next) { - if (((addr->prefix_len - 1U) < 127U) && /* 0 < prefix_len < 128 */ - !ipv6_addr_is_unspecified(&addr->addr) && + assert(((uint8_t) addr->prefix_len) <= 128U); + + if (!ipv6_addr_is_unspecified(&addr->addr) && !ipv6_addr_is_link_local(&addr->addr) && !gnrc_ipv6_netif_addr_is_non_unicast(&addr->addr)) { DEBUG(" - PIO for %s/%" PRIu8 "\n", ipv6_addr_to_str(addr_str, &addr->addr,