您的位置:首页 > 其它

uclibc下使用libcurl的段错误(缺少hosts文件)

2013-06-07 16:40 169 查看
最近要在某个嵌入式Linux下使用libcurl这个库,该Linux的标准C库是uclibc,程序执行到curl_easy_perform总是会出现段错误。

使用gdb调试之后发现是uclibc使用gethostbyaddr_r的时候会假设hosts文件存在(/etc/hosts或者/etc/config/hosts),

但是恰好我们的Linux没有这个文件,这就导致无限循环(而且每次循环会动态分配2倍于上一次循环的内存来保存主机名称)

这样循环到一定次数,就会出现内存地址越界。(参见uclibc的libc/inet/getaddrinfo.c Line 656)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐