Kernel panic due to NF_IP_LOCAL_OUT handler calling itself again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
I am implementing a source routed protocol(like DSR) using netfilter
hooks. After rerouting the skb in my local_out handler, I return
NF_STOLEN and call the okfn (dst_output) directly. On testing the
code, we found that the local_out handler is being called, before the
previous call to local_out has returned. We were testing our protocol
by pinging.
In the first call of local_out, we get a normal echo packet(type 8),
but in the second call we get icmp packet types > 18 (NR_ICMP_TYPES).
We believe this caused the kernel panic that we observed. However, in
the oops trace the EIP value was 0x14000000, which we belive is not
pointing to our module. Infact in many of the dumps we observed, the
call trace did not contain any of our functions.
We are using the vanilla version of 2.6.10 kernel with
NF_DEBUG,KERNEL_DEBUG support enabled. SMP and PREEMPTIBLE are _NOT_
enabled in the kernel. Could this crash be due to the fact that we are
calling the okfn ourselves from local_out, which may call a function
thru the dst->output, which ultimately goes thru the LOCAL_OUT hook
again, effectively we are somehow calling ourselves.
But we are still not clear of the root of the problem we are facing.
We have been trying very hard to debug this problem, any help would be
greatly appreciated..
Thanks in advance.
Eagerly awaiting your reply.


Yours Sincerely
Vinay Reddy.
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux