kern/73321: Reproducible Panic (LOR: I4B / INET6)
StefanEßer
se at FreeBSD.org
Sat Oct 30 14:40:26 PDT 2004
The following reply was made to PR kern/73321; it has been noted by GNATS.
From: Stefan =?iso-8859-1?Q?E=DFer?= <se at FreeBSD.org>
To: freebsd-gnats-submit at FreeBSD.org
Cc:
Subject: Re: kern/73321: Reproducible Panic (LOR: I4B / INET6)
Date: Sat, 30 Oct 2004 23:36:59 +0200
According to a message sent to the -current list by Jan Srzednicki
in September, Robert Watson has added a check for a NULL pointer to
the netperf branch:
==== //depot/user/rwatson/netperf/sys/netinet6/nd6.c#9 - /home/rwatson/p4/rwatson_netperf/sys/netinet6/nd6.c ====
@@ -1779,6 +1779,8 @@
nd6_slowtimo, NULL);
IFNET_RLOCK();
for (ifp = TAILQ_FIRST(&ifnet); ifp; ifp = TAILQ_NEXT(ifp, if_list)) {
+ if (ifp->if_afdata[AF_INET6] == NULL)
+ continue;
nd6if = ND_IFINFO(ifp);
if (nd6if->basereachable && /* already initialized */
(nd6if->recalctm -= ND6_SLOWTIMER_INTERVAL) <= 0) {
I have verified that this patch fixes the problem (or at least works
around it) reliably. There could still be a race, if "NULL" is assigned
to "ifp->if_afdata[AF_INET6]" immediately after the test and before the
ND_IFINFO macro tries to use that pointer.
I think this patch should be applied to -current and brought into 5.3
since it fixes a real problem.
More information about the freebsd-bugs
mailing list