Hi,

I am running the following code to send a post request using the multi API:

>    curl_global_init(CURL_GLOBAL_ALL);

   auto* curl = curl_multi_init();
>    auto* curl_easy = curl_easy_init();
>    curl_easy_setopt(curl_easy, CURLOPT_URL, url.c_str());
>    curl_easy_setopt(curl_easy, CURLOPT_POST, 1L);
>
>    curl_slist* curl_headers = nullptr;
>    for (auto& h : headers)
>       curl_headers = curl_slist_append(curl_headers, h.c_str());
>    curl_easy_setopt(curl_easy, CURLOPT_HTTPHEADER, curl_headers);
>    curl_easy_setopt(curl_easy, CURLOPT_POSTFIELDS, body.c_str());
>
>    curl_multi_add_handle(curl, curl_easy);
>
>    int still_running = 0;
>    do {
>       curl_multi_perform(curl, &still_running);
>       if (still_running)
>          curl_multi_wait(curl, nullptr, 0, 1000, nullptr);
>    } while (still_running);
>    curl_slist_free_all(curl_headers);
>

When I run my program in valgrind, I see memory errors. What am I doing
wrong?

==60126== Memcheck, a memory error detector
> ==60126== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
> ==60126== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright
> info
> ==60126== Command: ./test
> ==60126==
> ==60126== Conditional jump or move depends on uninitialised value(s)
> ==60126==    at 0x53EA551: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53EA8DF: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53F9CDF: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53FA131: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x54305DC: gnutls_x509_trust_list_add_cas (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x543237A: gnutls_x509_trust_list_add_trust_mem (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432811: gnutls_x509_trust_list_add_trust_file (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432AE4: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432B2E: gnutls_x509_trust_list_add_trust_dir (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53B12BD: gnutls_certificate_set_x509_trust_dir (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x49618B4: ??? (in
> /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.6.0)
> ==60126==    by 0x4963AEE: ??? (in
> /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.6.0)
> ==60126==
> ==60126== Conditional jump or move depends on uninitialised value(s)
> ==60126==    at 0x53EA551: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53EA8DF: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53F9CDF: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x53FA177: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5424EFA: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x543371D: gnutls_x509_ext_import_subject_alt_names (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5428669: gnutls_x509_crt_import (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5428AF3: gnutls_x509_crt_list_import (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5428DBF: gnutls_x509_crt_list_import2 (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432359: gnutls_x509_trust_list_add_trust_mem (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432811: gnutls_x509_trust_list_add_trust_file (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==    by 0x5432AE4: ??? (in
> /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0)
> ==60126==
>
>
>
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to