diff options
author | Thomas Huth <thuth@redhat.com> | 2016-05-02 21:55:30 +0200 |
---|---|---|
committer | Alexey Kardashevskiy <aik@ozlabs.ru> | 2016-05-05 16:11:04 +1000 |
commit | 8870f4400f954ce9b9293eb30f27cecfa589cdba (patch) | |
tree | 543b48cff71f4cd27838a0f119b551de9ac23404 /clients | |
parent | 8f8c4e64148b509d1a7a9e6bae6fd63bf0fce036 (diff) | |
download | SLOF-8870f4400f954ce9b9293eb30f27cecfa589cdba.zip SLOF-8870f4400f954ce9b9293eb30f27cecfa589cdba.tar.gz SLOF-8870f4400f954ce9b9293eb30f27cecfa589cdba.tar.bz2 |
ipv6: Fix NULL pointer dereference in ip6addr_add()
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@redhat.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'clients')
-rw-r--r-- | clients/net-snk/app/netlib/ipv6.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |