Date: Mon, 13 Aug 2001 14:31:16 -0700 From: Brooks Davis <brooks@one-eyed-alien.net> To: hackers@freebsd.org Subject: Fwd: error in ip_checkinterface code? Message-ID: <20010813143116.A13647@Odin.AC.HMC.Edu>
next in thread | raw e-mail | index | archive | help
--mYCpIKhGyMATD0i+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I sent the following to net a while back and got a whole one responce. Anyone else have any thoughts? Unless someone has a good reason not to, I'd like to commit the attached patch. -- Brooks ----- Forwarded message from Brooks Davis <brooks@one-eyed-alien.net> ----- From: Brooks Davis <brooks@one-eyed-alien.net> Date: Mon, 23 Jul 2001 18:44:18 -0700 To: net@FreeBSD.ORG Subject: error in ip_checkinterface code? I just ran into what appears to be a bug in the ip_checkinterface code. The problem is that is assumes m->m_pkthdr.rcvif is non-NULL. Apparently this is normally true, but I have some netgraph code that processes it's processes in such a way that they lose their interface pointer which means that when I stick them back into the ip_stack get a panic. A quick patch that fixes the problem is included below. Is this fix correct? -- Brooks Index: ip_input.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/ncvs/src/sys/netinet/ip_input.c,v retrieving revision 1.174 diff -u -r1.174 ip_input.c --- ip_input.c 2001/06/23 17:17:58 1.174 +++ ip_input.c 2001/07/24 01:46:22 @@ -559,6 +559,7 @@ * the packets are received. */ checkif =3D ip_checkinterface && (ipforwarding =3D=3D 0) &&=20 + m->m_pkthdr.rcvif !=3D NULL && ((m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) =3D=3D 0) && (ip_fw_fwd_addr =3D=3D NULL); =20 --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 ----- End forwarded message ----- --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 --mYCpIKhGyMATD0i+ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7eEcjXY6L6fI4GtQRAnIuAJ4gjdbTUPQnpPxfJCZQd3/PMUF8DgCgojtT B8D32y03XTpsGbLp+0Bf0t4= =F8+I -----END PGP SIGNATURE----- --mYCpIKhGyMATD0i+-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010813143116.A13647>