Memory leaks Curl_打开内存泄漏

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

在我的应用程序中,我看到了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代码

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