免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2905 | 回复: 7

内核读指针越界是否会崩溃 [复制链接]

论坛徽章:
0
发表于 2011-12-12 15:54 |显示全部楼层

  1.                         struct ethhdr *pEthernet = (struct ethhdr *)skb->mac.raw;
  2.                         if(pEthernet->h_proto == 0x0081)
  3.                         {
  4.                                 if(net_ratelimit())
  5.                                 {
  6.                                         printk("eth=%p\n", pEthernet);
  7.                                 }
  8.                         }
复制代码
这是一段测试代码,会导至内核崩溃。我认为是第一行的强制转换有问题,然后第二行访问越界。
但在用户空间,这样的代码应该不会使程序崩溃。请问在内核空间读指针越界是什么情况?

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
发表于 2011-12-12 16:03 |显示全部楼层
内核里使用了错误的指针,要么读了错的东西,要么就kernel panic

论坛徽章:
0
发表于 2011-12-12 16:09 |显示全部楼层
这里没有写指针内容,只是访问,也会kernel panic?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2011-12-12 16:20 |显示全部楼层
回复 3# fly6
内核不区分你是打算写还是打算读吧。只有对应的页表不存在,就会缺页异常,在缺页异常里处理错误的地址,就会kernel panic.

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
发表于 2011-12-13 11:01 |显示全部楼层
skb->mac.raw是否存在,也就是说mac.raw 是不是已经释放掉。
这几天我再看skbbuff,记得是在netfilter上5个钩子中抓取的数据包,挂载在out上的包的mac头已经被剥夺掉了,这时候你就引用不到了

论坛徽章:
0
发表于 2011-12-13 11:11 |显示全部楼层
你C语言该重修了

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
发表于 2011-12-13 15:21 |显示全部楼层
回复  fly6
内核不区分你是打算写还是打算读吧。只有对应的页表不存在,就会缺页异常,在缺页异常里处理错 ...
瀚海书香 发表于 2011-12-12 16:20


pEthernet=NULL肯定panic
在一些区域,内核会刻意留一些“洞”来捕捉越界;如果越界能被捕获,就会oops;如果捕捉不到,即使地址是越界,还是回去这个错误的地址去读,不会panic

论坛徽章:
0
发表于 2011-12-13 16:46 |显示全部楼层
你C语言该重修了
wayling 发表于 2011-12-13 11:11

哈哈。。。这个不属于C的范畴吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP