Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/netinet6 inet6: don't set an invalid lladdr in nd6_free()
details: https://anonhg.NetBSD.org/src/rev/a2e818eee830
branches: trunk
changeset: 965064:a2e818eee830
user: roy <roy%NetBSD.org@localhost>
date: Sat Aug 31 01:49:45 2019 +0000
description:
inet6: don't set an invalid lladdr in nd6_free()
We don't want to announce that we've deleted a hwaddr of all zeros.
diffstat:
sys/netinet6/nd6.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diffs (37 lines):
diff -r ea7737b562c6 -r a2e818eee830 sys/netinet6/nd6.c
--- a/sys/netinet6/nd6.c Fri Aug 30 23:45:13 2019 +0000
+++ b/sys/netinet6/nd6.c Sat Aug 31 01:49:45 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: nd6.c,v 1.260 2019/08/27 21:11:26 roy Exp $ */
+/* $NetBSD: nd6.c,v 1.261 2019/08/31 01:49:45 roy Exp $ */
/* $KAME: nd6.c,v 1.279 2002/06/08 11:16:51 itojun Exp $ */
/*
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nd6.c,v 1.260 2019/08/27 21:11:26 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nd6.c,v 1.261 2019/08/31 01:49:45 roy Exp $");
#ifdef _KERNEL_OPT
#include "opt_net_mpsafe.h"
@@ -1192,6 +1192,7 @@
struct ifnet *ifp;
struct in6_addr *in6;
struct sockaddr_in6 sin6;
+ const char *lladdr;
KASSERT(ln != NULL);
LLE_WLOCK_ASSERT(ln);
@@ -1282,8 +1283,8 @@
}
sockaddr_in6_init(&sin6, in6, 0, 0, 0);
- rt_clonedmsg(RTM_DELETE, sin6tosa(&sin6),
- (const uint8_t *)&ln->ll_addr, ifp);
+ lladdr = ln->la_flags & LLE_VALID ? (const char *)&ln->ll_addr : NULL;
+ rt_clonedmsg(RTM_DELETE, sin6tosa(&sin6), lladdr, ifp);
/*
* Save to unlock. We still hold an extra reference and will not
Home |
Main Index |
Thread Index |
Old Index