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)。
使用gdb调试之后发现是uclibc使用gethostbyaddr_r的时候会假设hosts文件存在(/etc/hosts或者/etc/config/hosts),
但是恰好我们的Linux没有这个文件,这就导致无限循环(而且每次循环会动态分配2倍于上一次循环的内存来保存主机名称)
这样循环到一定次数,就会出现内存地址越界。(参见uclibc的libc/inet/getaddrinfo.c Line 656)。
相关文章推荐
- aspx文件,app_code内的类无法使用的排查 编译器错误消息 CS0246 找不到类型或命名空间名称“QPUtils”(是否缺少 using 指令或程序集引用)
- [原]用c#做了一个桌面程序用来分离excel文件里的数据时出现“操作必须使用一个可更新的查询”错误的解决
- libcurl下载mp3或者其它文件数据混乱,错误问题.
- 错误信息:不能使用 '';文件已在使用中
- IIS错误信息--另一个程序正在使用此文件,进程无法访问!
- 头文件互相包含与error C2146: 语法错误 : 缺少“;”的问题
- Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 错误的解决办法
- VS调试出现错误提示 无法将“obj\Debug\*.*”复制到“bin\Debug\*.*”,文件正在由另一个进程使用,因此该进程无法访问此文件
- 元素“Button”不是已知元素。原因可能是网站中存在编译错误,或者缺少web.config文件
- csv文件中字符串替换(csv换行符错误使用造成PHP读取异常)
- 使用phpoffice/phpexcel导出数据不全或者文件有错误
- vim使用autocomplpop插件编辑html文件错误的解决方法
- 包含别人的dll,然后我们用类库再次封装成dll的时候的注意事项;源文件与模块生成时的文件不同;创建调试信息文件 ··PDB时发生意外的错误,进程无法访问文件,因为另一个程序正在使用此文件
- 2014年Dropbox可用的Hosts文件 或 使用DNSCrypt解决DNS污染问题
- 远程使用x-manager中Xstart工具报缺少xterm包错误
- 要求使用 IIS 6.0 动态内容时 " HTTP 错误 404 - 文件或目录找 " 错误信息
- 解决SqlServer设备激活错误,请使用 WITH MOVE 选项来标识该文件的有效位置
- Ubuntu修改Hosts文件工具HostsTool使用说明
- 使用fsck命令修复linux文件系统错误【避开引起系统崩溃,启动不了的"-a"选项】
- 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法