[SLOF] [PATCH 4/5] ipv6: Fix NULL pointer dereference in ip6addr_add()

Thomas Huth thuth at redhat.com
Tue May 3 05:55:30 AEST 2016


When ip6addr_add() is called for the first time, both the first_ip6
and the last_ip6 pointer are not initialized yet, i.e. contain NULL.
So writing to "last_ip6->next" is a bad idea here. Fix it so that
this value is only written when the function is not called for the
first time.

Signed-off-by: Thomas Huth <thuth at redhat.com>
---
 clients/net-snk/app/netlib/ipv6.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clients/net-snk/app/netlib/ipv6.c b/clients/net-snk/app/netlib/ipv6.c
index 220fd36..6aa1ea3 100644
--- a/clients/net-snk/app/netlib/ipv6.c
+++ b/clients/net-snk/app/netlib/ipv6.c
@@ -330,7 +330,8 @@ int8_t ip6addr_add(struct ip6addr_list_entry *new_address)
 
 	if (first_ip6 == NULL)
 		first_ip6 = new_address;
-	last_ip6->next = new_address;
+	else
+		last_ip6->next = new_address;
 	last_ip6 = new_address;
 	last_ip6->next = NULL;
 
-- 
1.8.3.1



More information about the SLOF mailing list