摘要: 最近要在某个嵌入式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)。 阅读全文
posted @ 2013-06-07 16:40 梧留柒 阅读(774) 评论(0) 推荐(0) 编辑