diff --git a/net/icmpv6/icmpv6_input.c b/net/icmpv6/icmpv6_input.c index f6e30008bde..1e5cdca30a4 100644 --- a/net/icmpv6/icmpv6_input.c +++ b/net/icmpv6/icmpv6_input.c @@ -238,7 +238,7 @@ void icmpv6_input(FAR struct net_driver_s *dev) */ adv = ICMPv6RADVERTISE; - for (ndx = 0; ndx + sizeof(struct icmpv6_prefixinfo_s) < optlen; ) + for (ndx = 0; ndx + sizeof(struct icmpv6_prefixinfo_s) <= optlen; ) { FAR struct icmpv6_prefixinfo_s *opt = (FAR struct icmpv6_prefixinfo_s *)&adv->options[ndx]; @@ -313,7 +313,7 @@ void icmpv6_input(FAR struct net_driver_s *dev) default: { - nlldbg("Unknown ICMPv6 cmd: %d\n", icmp->type); + nlldbg("Unknown ICMPv6 type: %d\n", icmp->type); goto icmpv6_type_error; } } diff --git a/net/icmpv6/icmpv6_rnotify.c b/net/icmpv6/icmpv6_rnotify.c index 66d3370da1c..d2249d95fc9 100644 --- a/net/icmpv6/icmpv6_rnotify.c +++ b/net/icmpv6/icmpv6_rnotify.c @@ -152,8 +152,8 @@ static void icmpv6_setaddresses(FAR struct net_driver_s *dev, for (i = 0; i < 7; i++) { - dev->d_ipv6addr[i] = (dev->d_ipv6addr[i] & dev->d_ipv6netmask[i]) | - (prefix[i] & ~dev->d_ipv6netmask[i]); + dev->d_ipv6addr[i] = (dev->d_ipv6addr[i] & ~dev->d_ipv6netmask[i]) | + (prefix[i] & dev->d_ipv6netmask[i]); } nvdbg("prefix=%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",