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.

Re: SIGSEGV in curl-8.6.0/lib/http2.c:288 (curl_multi_perform->extract_if_dead->http2_data_done)

From: Aleksander Mazur via curl-library <>
Date: Tue, 26 Mar 2024 03:17:38 +0100

Dnia 2024-03-21, o godz. 14:08:36
Aleksander Mazur via curl-library <> napisaƂ(a):

> The app keeps re-using the same 3 easy handles and one multi handle, created
> once at the beginning. Two of them may talk to the same server (one is
> switched between different servers).

I didn't mention that the app uses yet another easy handle for sending e-mails
Valgrind found following error:

==101562== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
==101562== 2 errors in context 1 of 1:
==101562== Invalid read of size 8
==101562== at 0x4983659: http2_data_done (http2.c:278)
==101562== by 0x49881E8: cf_h2_cntrl (http2.c:2513)
==101562== by 0x4963D13: Curl_conn_cf_cntrl (cfilters.c:501)
==101562== by 0x4963F38: cf_cntrl_all (cfilters.c:551)
==101562== by 0x4963FCF: Curl_conn_ev_data_detach (cfilters.c:568)
==101562== by 0x4993D85: Curl_detach_connection (multi.c:973)
==101562== by 0x49B2DC3: extract_if_dead (url.c:828)
==101562== by 0x49B2E1E: call_extract_if_dead (url.c:854)
==101562== by 0x496572C: Curl_conncache_foreach (conncache.c:332)
==101562== by 0x49B3009: prune_dead_connections (url.c:883)
==101562== by 0x49B772C: create_conn (url.c:3635)
==101562== by 0x49B7D0D: Curl_connect (url.c:3873)
==101562== Address 0x84f9f88 is 8 bytes after a block of size 64 alloc'd
==101562== at 0x4849E60: calloc (vg_replace_malloc.c:1595)
==101562== by 0x498F348: curl_dbg_calloc (memdebug.c:175)
==101562== by 0x49A98A9: smtp_init (smtp.c:1318)
==101562== by 0x49AA0AE: smtp_setup_connection (smtp.c:1660)
==101562== by 0x49B4DA2: setup_connection_internals (url.c:2042)
==101562== by 0x49B7682: create_conn (url.c:3580)
==101562== by 0x49B7D0D: Curl_connect (url.c:3873)
==101562== by 0x4995B9E: multi_runsingle (multi.c:2002)
==101562== by 0x49975B7: curl_multi_perform (multi.c:2780)
==101562== by 0x41A599: main (main.c:221)

(using vanilla curl 8.6.0)

So it looks like an easy handle set up by smtp handler is then passed via
cfilters to http2 code (?)

Aleksander Mazur
Received on 2024-03-26