lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 16 May 2009 12:31:28 -0400
From:	Claude Robitaille <clauder@...edian.com>
To:	netdev@...r.kernel.org
Subject: sk_buff handling in packet handler

Hi all,

My question is a development question so I hope this is the correct list 
to post it. If not just tell me and I will find another list...

I am developing a packet handler that I register via dev_add_pack. All 
is fine except that after a while the kernel crashes. I suspect my 
handler not doing something correct...

The handler is registered with the ETH_P_ALL list, listening on a 
specific interface.

After many attempt at reducing the scope of what my handler is doing I 
now simply do a return in my handler. When I send lots of frames to 
interface that I am listening to after a while I start getting kernel 
messages about low memory and eventually even get exception dumps.

I suspect that the handler needs to do something with the sk_buff but I 
am not sure what. I printed the content of the sk_buff and found that 
the skb_buff is not cloned (looking on the web I had found that the 
sk_buff should have been cloned) and that he number of users is 1.

Should I simply do a dev_kfree_skb? What are the rules governing the use 
of the sk_buff in a packet handler? Should I clone the sk_buff?

Also, a related question, the packet handler is expected to return an 
int. What should be returned?

Thanks

Claude
 

View attachment "clauder.vcf" of type "text/x-vcard" (177 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ