From a4d14fc98702caf029559284baf45888c944753e Mon Sep 17 00:00:00 2001 From: Ivan Delamer Date: Fri, 20 Mar 2015 09:04:22 -0600 Subject: [PATCH] fix bug #44586: nd6_send_rs() pbuf size error --- src/core/ipv6/nd6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/ipv6/nd6.c b/src/core/ipv6/nd6.c index 64134766..01a3e557 100644 --- a/src/core/ipv6/nd6.c +++ b/src/core/ipv6/nd6.c @@ -994,8 +994,8 @@ nd6_send_rs(struct netif * netif) if (src_addr != IP6_ADDR_ANY) { lladdr_opt_len = ((netif->hwaddr_len + 2) >> 3) + (((netif->hwaddr_len + 2) & 0x07) ? 1 : 0); } - p = pbuf_alloc(PBUF_IP, sizeof(struct rs_header) + lladdr_opt_len, PBUF_RAM); - if ((p == NULL) || (p->len < (sizeof(struct rs_header) + lladdr_opt_len))) { + p = pbuf_alloc(PBUF_IP, sizeof(struct rs_header) + lladdr_opt_len << 3, PBUF_RAM); + if ((p == NULL) || (p->len < (sizeof(struct rs_header) + lladdr_opt_len << 3))) { /* We couldn't allocate a suitable pbuf for the ns. drop it. */ if (p != NULL) { pbuf_free(p);