curl curl_global_init утечка памяти

#include <curl/curl.h>
#include <mcheck.h>

int main(int argc, char** argv) 
{   
    setenv("MALLOC_TRACE", "output", 1);
    mtrace();
    curl_global_init(CURL_GLOBAL_ALL);
    curl_global_cleanup();
    return 0;
}

gcc -o test test.c -lcurl

./тестовое задание

вывод mtrace

 - 0x000000000154f010 Free 6293 was never alloc'd 0x7f9a4e515256
 - 0x000000000154f040 Free 6294 was never alloc'd 0x7f9a4e4a299d
 - 0x000000000154f060 Free 6295 was never alloc'd 0x7f9a4e51540c

 Memory not freed:

Address     Size     Caller

0x000000000154f830    0x258  at 0x7f9a4d303134

0x000000000154fa90     0xb0  at 0x7f9a4d303134

0x000000000154fb50     0x80  at 0x7f9a4d303134

0x000000000154fbe0     0x18  at 0x7f9a4d303134

0x0000000001568ca0     0x20  at 0x7f9a4d303134

0x0000000001568cd0     0x20  at 0x7f9a4d303134

Что может быть причиной этой утечки памяти?

1 ответ

Поздний ответ, но я сам столкнулся с той же проблемой. Если libcurl связан с поддержкой openssl, вы должны вручную освободить ресурсы openssl.

#include "openssl/conf.h"
#include "openssl/err.h"
#include "openssl/engine.h"
#include "openssl\ssl.h"

CONF_modules_free();
ERR_remove_state(0);
ENGINE_cleanup();
CONF_modules_unload(1);
ERR_free_strings();
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
sk_SSL_COMP_free(SSL_COMP_get_compression_methods()); 

Сделал трюк для меня

Другие вопросы по тегам