From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Kesava Srinivas Sent: Monday, November 21, 2011 11:03 AM To: kernelnewbies@xxxxxxxxxxxxxxxxx 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 |
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies