Memory leaks Curl_打开内存泄漏
在我的应用程序中,我看到了curl中valgrind的这些漏洞。我的应用程序在启动期间初始化4个curl句柄,并将其用于下载数据,然后使用curl\u easy\u reset重置句柄。手柄将在应用程序退出时通过curl\u easy\u cleanup清理 我认为这个流程是正确的,不应该有任何泄漏,但valgrind显示了以下泄漏 ==3238==229504(77056直接,152448间接)4个块中的字节肯定会在7506的丢失记录7503中丢失 ==3238==at 0x48411F8:calloc(vg\u replace\u malloc.c:752) ==3238==by 0x52AA09B:Curl_open(在/usr/lib/libcurl.so.4.5.0中) ==3238==74974(352个直接,74622个间接)字节在7506的丢失记录7480中肯定丢失 ==3238==at 0x4841478:realloc(vg_replace_malloc.c:826) ==3238==by 0x5A68ABF:ares_init_选项(在/usr/lib/libcares.so.2.3.0中) Curl\u open是从Curl\u easy\u init(4次调用)和额外的Curl\u easy\u init(由Curl\u easy\u perform调用)调用的,但是Curl\u easy\u cleanup只调用了4次。来自curl\u easy\u perform的额外curl\u easy\u init调用是否与泄漏有关?下面是psudo代码Memory leaks Curl_打开内存泄漏,memory-leaks,libcurl,Memory Leaks,Libcurl,在我的应用程序中,我看到了curl中valgrind的这些漏洞。我的应用程序在启动期间初始化4个curl句柄,并将其用于下载数据,然后使用curl\u easy\u reset重置句柄。手柄将在应用程序退出时通过curl\u easy\u cleanup清理 我认为这个流程是正确的,不应该有任何泄漏,但valgrind显示了以下泄漏 ==3238==229504(77056直接,152448间接)4个块中的字节肯定会在7506的丢失记录7503中丢失 ==3238==at 0x48411F8:c
void init()
{
for (i=0; i<8; i++)
{
curlHandles[i].curlhandle = curl_easy_init();
curlHandles[i].isInUse = FALSE;
}
}
void deinit()
{
for (i=0; i<8; i++)
{
curlHandles[i].curlhandle = curl_easy_cleanup();
curlHandles[i].isInUse = FALSE;
}
}
void download()
{
lock()
curl_handle = get_free_handle()
unlock()
/* set curl opts */
curl_easy_setopt();
/* perform download */
curl_easy_perform();
/* reset */
curl_easy_reset(curl_handle);
}
void init()
{
对于(i=0;这意味着CURL有一个bug,你应该把它报告给CURL项目。但是我认为它不太可能,但是因为你没有显示任何代码,我们不能帮助你更多。”DanielStenberg,我添加了我的应用程序正在做什么的PSUDO代码。当我使用DNS名称的URL时,我看到了漏洞,而基于IP的URL泄漏更少。s