NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/36195
The following reply was made to PR kern/36195; it has been noted by GNATS.
From: Jan Schaumann <jschauma%netmeister.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: kern/36195
Date: Thu, 14 Feb 2008 14:29:44 -0800
--YiEDa0DAkWCtVeE4
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
The same problem was found in FreeBSD (various versions, including 4.x,
6.x, 7.x) and other BSD versions. John Baldwin fixed it (to some
degree) in FreeBSD:
http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/netstat/route.c.diff?r1=
=3D1.87;r2=3D1.88
The problem appears to be that if your routing table changes while
netstat is running, it's possible that a pointer gets freed that netstat
wants to revisit.
John's commit message:
"Make netstat -rn more resilient to having the routing table change out
=66rom
under it while running. Note that this is still not perfect:
- Try to do something intelligent if kvm_read() fails to read a routing
table structure such as an rtentry, radix_node, or ifnet.
- Don't follow left and right node pointers in radix_nodes unless
RNF_ACTIVE is set in rn_flags. This avoids walking through freed
radix_nodes."
--YiEDa0DAkWCtVeE4
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (NetBSD)
iD8DBQFHtMDYfFtkr68iakwRAthyAJ96Zc5Q+NUR4m1TGvG/47qE52MXcgCgvENP
NlqBnQ9VLN0aEkq6l8cffMA=
=qz4b
-----END PGP SIGNATURE-----
--YiEDa0DAkWCtVeE4--
Home |
Main Index |
Thread Index |
Old Index