curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Memory leak with curl_multi_socket_action

From: James Read via curl-library <curl-library_at_cool.haxx.se>
Date: Sun, 24 May 2020 01:44:46 +0100

Valgrind reports a memory leak in my web crawler:

==36126== 923,440 bytes in 485 blocks are possibly lost in loss record 56
of 56
==36126== at 0x483DD99: calloc (in
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==36126== by 0x4896414: ??? (in
/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0)
==36126== by 0x48AAA2E: ??? (in
/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0)
==36126== by 0x48ABB1B: ??? (in
/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0)
==36126== by 0x48ABCB7: curl_multi_socket_action (in
/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0)
==36126== by 0x10C667: event_cb (crawler.c:188)
==36126== by 0x10D78F: crawler_init (crawler.c:555)
==36126== by 0x49E0608: start_thread (pthread_create.c:477)
==36126== by 0x4B41102: clone (clone.S:95)

here is my event_cb function:

static void
event_cb(GlobalInfo *g, int fd, int revents)
{
        CURLMcode rc;
        struct itimerspec its;

        int action = ((revents & EPOLLIN) ? CURL_CSELECT_IN : 0) |
                                 ((revents & EPOLLOUT) ? CURL_CSELECT_OUT :
0);

        rc = curl_multi_socket_action(g->multi, fd, action,
&g->still_running);
        mcode_or_die("event_cb: curl_multi_socket_action", rc);

        check_multi_info(g);

        if (g->still_running <= 0) {
                //fprintf(MSG_OUT, "last transfer done, kill timeout\n");
                memset(&its, 0, sizeof(struct itimerspec));
                timerfd_settime(g->tfd, 0, &its, NULL);
        }
}

What is memory being allocated for? What do I need to free? Is this a bug
in curl or is something wrong at my end?

Thanks
James Read

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2020-05-24