freebsd-skq/sys/netinet6
Bjoern A. Zeeb becba438d2 Plug reference leaks in the link-layer code ("new-arp") that previously
prevented the link-layer entry from being freed.

In both in.c and in6.c (though that code path seems to be basically dead)
plug a reference leak in case of a pending callout being drained.

In if_ether.c consistently add a reference before resetting the callout
and in case we canceled a pending one remove the reference for that.
In the final case in arptimer, before freeing the expired entry, remove
the reference again and explicitly call callout_stop() to clear the active
flag.

In nd6.c:nd6_free() we are only ever called from the callout function and
thus need to remove the reference there as well before calling into
llentry_free().

In if_llatbl.c when freeing entire tables make sure that in case we cancel
a pending callout to remove the reference as well.

Reviewed by:		qingli (earlier version)
MFC after:		10 days
Problem observed, patch tested by: simon on ipv6gw.f.o,
			Christian Kratzer (ck cksoft.de),
			Evgenii Davidov (dado korolev-net.ru)
PR:			kern/144564
Configurations still affected:	with options FLOWTABLE
2010-04-11 16:04:08 +00:00
..
dest6.c
frag6.c
icmp6.c
icmp6.h
in6_cksum.c
in6_gif.c
in6_gif.h
in6_ifattach.c
in6_ifattach.h
in6_mcast.c
in6_pcb.c No need to include security/mac/mac_framework.h here. 2010-02-18 22:30:37 +00:00
in6_pcb.h
in6_proto.c
in6_rmx.c
in6_src.c
in6_var.h
in6.c Plug reference leaks in the link-layer code ("new-arp") that previously 2010-04-11 16:04:08 +00:00
in6.h
ip6_ecn.h
ip6_forward.c
ip6_id.c
ip6_input.c
ip6_ipsec.c
ip6_ipsec.h
ip6_mroute.c
ip6_mroute.h
ip6_output.c The proper fix for the delayed SCTP checksum is to 2010-03-12 22:58:52 +00:00
ip6_var.h
ip6.h
ip6protosw.h
mld6_var.h
mld6.c When embedding the scope ID in MLDv1 output, check if the scope of the address 2010-04-10 12:24:21 +00:00
mld6.h
nd6_nbr.c
nd6_rtr.c
nd6.c Plug reference leaks in the link-layer code ("new-arp") that previously 2010-04-11 16:04:08 +00:00
nd6.h
pim6_var.h
pim6.h
raw_ip6.c
raw_ip6.h
route6.c
scope6_var.h
scope6.c
sctp6_usrreq.c * Fix some race condition in SACK/NR-SACK processing. 2010-04-03 15:40:14 +00:00
sctp6_var.h
tcp6_var.h
udp6_usrreq.c
udp6_var.h