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