cyran
驱动中牛
驱动中牛
  • 注册日期2001-09-28
  • 最后登录2009-02-24
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:2886回复:4

skb_put和NF_IP_PRE_ROUTING的问题

楼主#
更多 发布于:2008-03-04 10:36
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冲突?
cyran
驱动中牛
驱动中牛
  • 注册日期2001-09-28
  • 最后登录2009-02-24
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-03-04 16:05
问题1看了源代码,skb_put不能再分配buffer
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
板凳#
发布于:2008-03-07 12:47
如果使用引用计数,不会出问题
走走看看开源好 Solaris vs Linux
cyran
驱动中牛
驱动中牛
  • 注册日期2001-09-28
  • 最后登录2009-02-24
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-10 11:37
在hook里面kfree_skb并且返回NF_ACCEPT的确会和系统冲突,只能返回NF_STOLEN
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地下室#
发布于:2008-03-10 14:19
kfree_skb当然不能返回accept了,只能返回stolen.

重要是理解返回值定义。

skb你自己做了操作,当然需要返回stolen
走走看看开源好 Solaris vs Linux
游客

返回顶部