Skip to content

Segfaults with http2 on libcurl 7.60.0 #2674

@jeroen

Description

@jeroen

As of recently my programs started to segfault when Debian switch to libcurl with openssl+nghttp2. I think there are may be multiple issues.

Here is a simple program (link) that does the following:

 create one multi-handle
 repeat 20x {
    - add 100 http/2 requests to the multi-handle
    - run multi handle until all requests are done
    - remove requests from the multi-handle
  }

The program works on my macos with native libcurl (curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0)

However on Debian (buster) the program segfaults after a while, both when compiled with libcurl4-openssl-dev as well as libcurl4-gnutls-dev. Both versions are libcurl 7.60.0.

I can also reproduce the problem on MacOS if I build libcurl with nghttp2 support:

brew install curl --with-nghttp2
brew link --force curl

And now the program will segfault here as well:

clang test.c $(pkg-config --cflags --libs libcurl)
./a.out

# Round 0: adding 100 handles...
# Completed: 100 OK!
# Round 1: adding 100 handles...
# Completed: 100 OK!
# Round 2: adding 100 handles...
# Segmentation fault: 11

And if I then brew unlink curl and recompile, everything is fine again.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions