免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5441 | 回复: 8
打印 上一主题 下一主题

[C] dlopen函数是否检查so文件的合法性 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-20 10:43 |只看该作者 |倒序浏览
我在AIX环境下调用so动态库文件,在执行dlopen的时候内存溢出,导致程序down掉了。
检查主程序代码没看到异常操作,所以怀疑是动态库写的不对
dlopen在打开so文件的时候,会对so文件内的函数进行合法性校验么?
或者这么说,内存溢出有可能是so文件导致的么?

注:
dlopen调用:myhandle=dlopen("/home/efsc/lib/libsips.so",RTLD_GLOBAL|RTLD_LAZY);

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
2 [报告]
发表于 2014-01-20 10:49 |只看该作者
前两天刚搞过这个。。

确认具体是哪一步么,dlopen本身段错误?
strace看看,或者gdb调下。

论坛徽章:
0
3 [报告]
发表于 2014-01-20 11:06 |只看该作者
我用dbx看了一下core文件,内容如下:
dbx batchpro core
>...
...
>dlopen(??,??) at  0x.....
>callDYFUNC(pdata=""),line  75 in  "calldyfunc.c "
>main (argc=1,argv=0x0fff.....), line  .....




回复 2# pandaiam


   

论坛徽章:
0
4 [报告]
发表于 2014-01-20 11:08 |只看该作者
根据dbx显示,我觉得是dlopen函数段错误了

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
5 [报告]
发表于 2014-01-20 11:54 |只看该作者
程序调用者有esfc用户的权限吗?
我这里只有Linux,没有aix。。

论坛徽章:
0
6 [报告]
发表于 2014-01-20 12:24 |只看该作者
是的

回复 5# pandaiam


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2014-01-20 13:42 |只看该作者
cclljj1987 发表于 2014-01-20 10:43
dlopen在打开so文件的时候,会对so文件内的函数进行合法性校验么?

dlopen() (实际是 ld.so)只加载 so 文件,并对其中的符号做动态链接,其他就不管了。

或者这么说,内存溢出有可能是so文件导致的么?

完全有可能。

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
8 [报告]
发表于 2014-02-04 21:53 来自手机 |只看该作者
有很多系统不是都支持dlopen。但是都有办法动态加载程序库。可以参照freeradius

论坛徽章:
0
9 [报告]
发表于 2014-02-04 23:36 |只看该作者
so被加载了会执行一些代码的吧。有些变量初始化可能就在这时候。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP