sock_buff is NULL !
Jeff Haran
jharan at bytemobile.com
Mon Nov 21 14:20:11 EST 2011
From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Kesava Srinivas
Sent: Monday, November 21, 2011 11:03 AM
To: kernelnewbies at kernelnewbies.org
Subject: sock_buff is NULL !
HI Team,
Trying to make this code work; but some how it is entering the if condition mentioned below.sock_buff is still a NULL Pointer.I can see that Function was registered with the Ipv4 Hooks. Any ideas/scenarios where the sock_buff remains as NULL Pointer??? Testing this code by trying to do ssh with this machine.
Any Help is really appreciated !!
#########
static struct nf_hook_ops netfilter_ops;
struct sk_buff *sock_buff;
unsigned int main_hook(unsigned int hooknum,struct sk_buff **skb,const struct net_device *in,const struct net_device *out,int (*okfn)(struct sk_buff*)) {
sock_buff = *skb;
if(!sock_buff){
printk(KERN_ERR "Entered unexpected loop \n");
return NF_ACCEPT;
}/* Check for sk_buff NULL */
}
int init_module()
{
netfilter_ops.hook = (nf_hookfn *) main_hook;
netfilter_ops.hooknum = NF_INET_PRE_ROUTING;
netfilter_ops.pf = PF_INET;
netfilter_ops.priority = NF_IP_PRI_FIRST;
nf_register_hook(&netfilter_ops);
}
######################
-Thnx,
VKS
Which kernel version are you using? The function prototype of a netfilter hook does vary from kernel version to kernel version, but in the kernels I’ve seen the skb parameter is a typed sk_buff *skb, not sk_buff **skb. In other words, you get passed a pointer to the sk_buff, not the address of a pointer to an sk_buff.
Jeff Haran
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111121/ea77bd0d/attachment.html
More information about the Kernelnewbies
mailing list