免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3284 | 回复: 11

[内核模块] Unable to handle kernel NULL pointer [复制链接]

论坛徽章:
0
发表于 2015-07-21 16:16 |显示全部楼层
代码出错如下,看不懂,是空指针问题吗,出在哪里?


Unable to handle kernel NULL pointer dereference at virtual address 00000004
printing eip:
fc079c36
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: seclient cfs_ss nfs osd_target osd_fs nfsd exportfs lockd parport_pc lp parport autofs4 rfcomm l2cap bluetooth sunrpc acpiphp dm_mod video button battery ac md5 ipv6 uhci_hcd ehci_hcd i2c_piix4 i2c_core shpchp gameport snd_rawmidi snd_ac97_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc pcnet32 mii floppy ext3 jbd mptscsih mptbase sd_mod scsi_mod
CPU:    0
EIP:    0060:[<fc079c36>]    Tainted: GF     VLI
EFLAGS: 00210286   (2.6.12)
EIP is at cfs_mkdir+0xa6/0x2a0 [seclient]
eax: 00000000   ebx: fc088e80   ecx: ffffffff   edx: 0000c401
esi: e8ee6400   edi: 000041ed   ebp: ee0b04ac   esp: ed4f1f10
ds: 007b   es: 007b   ss: 0068
Process mkdir (pid: 4744, threadinfo=ed4f1000 task=eddd0aa0)
Stack: fc082e25 00000000 00000000 00000000 00000000 00000000 f591e6bc f0397000
       00000000 00000017 00000000 fc088e80 00000000 ee0b04ac f591e6bc c019602f
       000001ed f591e6bc f7e08000 ee0b04ac ed4f1000 c019610c f287aaec efd97800
Call Trace:
[<c019602f>] vfs_mkdir+0xdf/0x130
[<c019610c>] sys_mkdir+0x8c/0xd0
[<c0108809>] do_syscall_trace+0x109/0x13d
[<c0103b95>] syscall_call+0x7/0xb
Code: 8b 74 24 30 8b 7c 24 34 8b 6c 24 38 83 c4 3c c3 90 8d 74 26 00 c7 04 24 25 2e 08 fc 81 cf 00 40 00 00 e8 3e 94 0a c4 8b 44 24 28 <8b> 58 04 8b 70 08 c7 04 24 29 2e 08 fc e8 28 94 0a c4 c7 04 24

论坛徽章:
0
发表于 2015-07-21 16:45 |显示全部楼层

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-21 17:25 |显示全部楼层
回复 1# koofun


典型的空指针解引用的错误,看下代码把。

   

论坛徽章:
2
天蝎座
日期:2014-07-23 21:17:122015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2015-07-21 17:40 |显示全部楼层
调用栈有了,反汇编kernel找到出错的那句代码,必然有一个指针引用。
往上跟 这个指针怎么来的。
错误在vfs,不用怀疑内核vfs会有问题,肯定是你传进去的有问题。

论坛徽章:
0
发表于 2015-07-22 11:43 |显示全部楼层
回复 4# polejo


    谢谢回答
    怎么反汇编kernel呢?是要什么工具吗?还是命令呢

论坛徽章:
0
发表于 2015-07-22 11:48 |显示全部楼层
回复 3# Godbach


    谢谢回答,看了代码
   涉及到两个函数 mds_mkdir(char *path, struct object2user **p)
                        mds_mkdir(name, &tmp)//struct object2user *tmp
         在mds_mkdir里有tmp 不是NULL,但是调用出来后tmp变成了NULL,这是怎么回事。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-22 17:42 |显示全部楼层
回复 6# koofun

那就看下函数实现,是不是走到异常处理流程。
   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-22 17:44 |显示全部楼层
回复 1# koofun

EIP is at cfs_mkdir+0xa6/0x2a0 [seclient]


要看下 cfs_mkdir 执行的逻辑。其实通过上面的信息,是可以定位出来出问题的代码行的。


   

论坛徽章:
0
发表于 2015-07-23 16:01 |显示全部楼层
回复 7# Godbach


    找到了那行代码,是要用tmp进行赋值,但是tmp是NULL

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2015-07-23 16:04 |显示全部楼层
回复 9# koofun

是自己写的代码吗?


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP