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

Reply via email to