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 <[EMAIL PROTECTED]> -----
From: Brooks Davis <[EMAIL PROTECTED]>
Date: Mon, 23 Jul 2001 18:44:18 -0700
To: [EMAIL PROTECTED]
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
===================================================================
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 = ip_checkinterface && (ipforwarding == 0) &&
+ m->m_pkthdr.rcvif != NULL &&
((m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) == 0) &&
(ip_fw_fwd_addr == NULL);
--
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 -----
--
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
PGP signature