内存
蓝色的香菇
性格开朗,从事网络安全领域和Linux研发多年
展开
-
glibc 内存重复释放检测失效
glibc的malloc算法中,对于小内存的重复释放检测不完善,如果相同大小内存交叉多次释放时,无法检测出重复释放。 测试环境: glibc版本4.4.1 测试代码 #include main() { int *a = malloc(1); int *b = malloc(1); int *c = NULL;原创 2014-01-23 14:39:19 · 1126 阅读 · 0 评论 -
linux主文件和动态库之间变量和函数访问
通常我们需要从动态库里面直接调用可执行程序中的函数和变量,如果调用了-l选项,linux进程会自动把动态库的函数和变量加入到动态段中,所以直接访问是没有问题的。 我们这里要说的是非显示连接动态库,而是直接从c文件中通过dlopen函数打开动态库访问的方式,此时,gcc编译器不知道SO需要调用哪一个函数,所以不会讲函数放到动态段。故查找函数或者变量的时候,会出现找不到可执行程序中的符号的情况。原创 2014-12-27 23:08:34 · 3403 阅读 · 1 评论