阅读:2981回复:4
skb_put和NF_IP_PRE_ROUTING的问题
1 skb_put在skb尾部填充数据,如果填充的数据长度大于skb_tailroom返回的数值,skb_put会重新分配一个足够大小的buffer么?如果不会的话,是否只能自己重新分配skb
2 我在NF_IP_PRE_ROUTING挂载了一个hook,hook保留skb的地址后返回NF_ACCEPT,skb会继续向上传递;还有一个module里的线程会使用保留的地址改变或kfree这个skb。问题是,会否和系统kfree skb冲突? |
|
沙发#
发布于:2008-03-04 16:05
问题1看了源代码,skb_put不能再分配buffer
|
|
板凳#
发布于:2008-03-07 12:47
如果使用引用计数,不会出问题
|
|
|
地板#
发布于:2008-03-10 11:37
在hook里面kfree_skb并且返回NF_ACCEPT的确会和系统冲突,只能返回NF_STOLEN
|
|
地下室#
发布于:2008-03-10 14:19
kfree_skb当然不能返回accept了,只能返回stolen.
重要是理解返回值定义。 skb你自己做了操作,当然需要返回stolen |
|
|