From e72bde5805abdc59f6342fee52dd4e3336900772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20G=C3=BCndo=C4=9Fan?= Date: Mon, 26 Oct 2015 15:18:58 +0100 Subject: [PATCH 1/2] ndp/internal: add assert to test for nc_entry if target is non-unicast --- sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c | 2 ++ 1 file changed, 2 insertions(+) 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 6454dcfec9..8cc450f533 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 @@ -221,6 +221,8 @@ void gnrc_ndp_internal_send_nbr_adv(kernel_pid_t iface, ipv6_addr_t *tgt, ipv6_a delay.seconds); /* nc_entry must be set so no need to check it */ + assert(nc_entry); + _send_delayed(&nc_entry->nbr_adv_timer, delay, hdr); } else if (gnrc_netapi_send(gnrc_ipv6_pid, hdr) < 1) { From 609cf7fb12490c3c43cd38d15f842b46a7ef964f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20G=C3=BCndo=C4=9Fan?= Date: Mon, 26 Oct 2015 15:32:13 +0100 Subject: [PATCH 2/2] ndp/internal: use dst instead of tgt to determine the nc_entry --- sys/net/gnrc/network_layer/ndp/internal/gnrc_ndp_internal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8cc450f533..737c4fd0e7 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 @@ -216,7 +216,7 @@ void gnrc_ndp_internal_send_nbr_adv(kernel_pid_t iface, ipv6_addr_t *tgt, ipv6_a * (see https://tools.ietf.org/html/rfc4861#section-7.2.7) */ timex_t delay = { 0, genrand_uint32_range(0, GNRC_NDP_MAX_AC_TGT_DELAY * SEC_IN_USEC) }; timex_normalize(&delay); - gnrc_ipv6_nc_t *nc_entry = gnrc_ipv6_nc_get(iface, tgt); + gnrc_ipv6_nc_t *nc_entry = gnrc_ipv6_nc_get(iface, dst); DEBUG("ndp internal: delay neighbor advertisement for %" PRIu32 " sec.", delay.seconds);