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: crash seen in multi_socket

From: Daniel Stenberg via curl-library <curl-library_at_cool.haxx.se>
Date: Sat, 11 May 2019 23:02:41 +0200 (CEST)

On Sat, 11 May 2019, Kunal Ekawde via curl-library wrote:

> I'm using libcurl - 7.64.0 with nghttp2 for http2 call flow. For http/1.1
> this crash is not seen.

I recommend using 7.64.1!

> I tried with following fix:
> /* the socket can be shared by many transfers, iterate */
> for(e = list->head; e; e = e->next) {
> data = (struct Curl_easy *)e->ptr;
> // crash fix - temp
> if (!data)
> continue;

I think this should do a 'break' instead of a 'continue'. After all, this
happens because the connection died so there is no more transfers on the same
connection.

> While this would just be defensive fix, the root cause fix could be
> elsewhere also, request to please check / comment.

This is a bit tricky to reproduce so I haven't managed to do this myself yet.
I'm just reading your description and the code and thinking.

If you add the break like this in there, does this fix the problem for you?
Does it have any other flaws? I'm thinking we might want to terminate those
remaining transfers on the same socket in a more immediate way...

What do you do to reproduce this case?

-- 
  / daniel.haxx.se | Get the best commercial curl support there is - from me
                   | Private help, bug fixes, support, ports, new features
                   | https://www.wolfssl.com/contact/
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html
Received on 2019-05-11