Go to file
Kamil Dudka f7dcc7c118 http: move HTTP/2 cleanup code off http_disconnect()
Otherwise it would never be called for an HTTP/2 connection, which has
its own disconnect handler.

I spotted this while debugging <https://bugzilla.redhat.com/1248389>
where the http_disconnect() handler was called on an FTP session handle
causing 'dnf' to crash.  conn->data->req.protop of type (struct FTP *)
was reinterpreted as type (struct HTTP *) which resulted in SIGSEGV in
Curl_add_buffer_free() after printing the "Connection cache is full,
closing the oldest one." message.

A previously working version of libcurl started to crash after it was
recompiled with the HTTP/2 support despite the HTTP/2 protocol was not
actually used.  This commit makes it work again although I suspect the
root cause (reinterpreting session handle data of incompatible protocol)
still has to be fixed.  Otherwise the same will happen when mixing FTP
and HTTP/2 connections and exceeding the connection cache limit.

Reported-by: Tomas Tomecek
Bug: https://bugzilla.redhat.com/1248389
2015-07-30 15:16:43 +02:00
CMake CMake: fix winsock2 detection on windows 2015-02-19 20:11:04 +01:00
docs ABI doc: use secure URL 2015-07-30 15:02:44 +02:00
include SSL: Add an option to disable certificate revocation checks 2015-07-17 02:40:16 -04:00
lib http: move HTTP/2 cleanup code off http_disconnect() 2015-07-30 15:16:43 +02:00
m4 configure: add --disable-rt option 2015-07-24 00:09:29 +02:00
packages os400: ebcdic wrappers for new functions. Upgrade ILE/RPG bindings. 2015-07-21 16:36:34 +02:00
projects build: Added VC14 project files 2015-07-29 18:42:48 +01:00
scripts scripts: moved contributors.sh and contrithanks.sh into subdir 2015-05-27 16:10:08 +02:00
src comment: fix comment about adding new option support 2015-07-26 14:15:07 +02:00
tests test1902: attempt to make the test more reliable 2015-07-26 22:20:26 +02:00
winbuild makefile: Added support for VC14 2015-07-21 18:52:43 +01:00
.gitattributes Tell git to not convert configure-related files. 2012-07-17 20:35:23 +02:00
.gitignore gitignore: Ignore Windows build output directories 2015-04-16 18:24:42 -04:00
.travis.yml .travis.yml: Change CI make test to make test-full 2015-03-10 20:37:17 +01:00
CHANGES CHANGES: move all contents from CHANGES to CHANGES.0 2010-06-21 22:27:39 +02:00
CHANGES.0 code/docs: Use correct case for IPv4 and IPv6 2014-12-27 11:31:55 +00:00
CMakeLists.txt openssl: remove all uses of USE_SSLEAY 2015-03-05 10:57:52 +01:00
CONTRIBUTING.md CONTRIBUTING.md: remove the sourceforge mention 2015-04-30 18:35:43 +02:00
COPYING COPYING: Bumped copyright year to 2015 2015-01-01 05:14:38 +00:00
CTestConfig.cmake ENH: move dashboard location 2009-07-15 19:40:46 +00:00
GIT-INFO curl tool: renaming hugehelp files to tool_hugehelp 2012-12-26 23:30:54 +01:00
MacOSX-Framework MacOSX-Framework: use @rpath instead of @executable_path 2015-03-09 23:39:27 +01:00
Makefile.am build: Added VC14 project files to Makefile.am 2015-07-29 19:07:08 +01:00
Makefile.dist makefile: Added support for VC14 2015-07-21 18:52:43 +01:00
README README: use secure protocol for Git repository 2015-06-15 23:45:34 +02:00
RELEASE-NOTES RELEASE-NOTES: Synced with 2d7e165761 2015-07-29 19:17:18 +01:00
acinclude.m4 configure: add --disable-rt option 2015-07-24 00:09:29 +02:00
buildconf configure: remove missing and make it autogenerate 2015-04-30 18:40:35 +02:00
buildconf.bat curl tool: renaming hugehelp files to tool_hugehelp 2012-12-26 23:30:54 +01:00
configure.ac configure: check if OpenSSL linking wants -ldl 2015-07-25 10:52:49 +02:00
curl-config.in curl-config.in: eliminate double quotes around CURL_CA_BUNDLE 2015-02-25 10:23:07 +01:00
libcurl.pc.in build: prevent global LIBS from influencing src and lib build targets 2012-12-03 22:41:18 +01:00
maketgz maketgz: Fixed some VC makefiles missing from the release tarball 2015-07-30 06:34:03 +01:00

README

                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

README

  Curl is a command line tool for transferring data specified with URL
  syntax. Find out how to use curl by reading the curl.1 man page or the
  MANUAL document. Find out how to install Curl by reading the INSTALL
  document.

  libcurl is the library curl is using to do its job. It is readily
  available to be used by your software. Read the libcurl.3 man page to
  learn how!

  You find answers to the most frequent questions we get in the FAQ document.

  Study the COPYING file for distribution terms and similar. If you distribute
  curl binaries or other binaries that involve libcurl, you might enjoy the
  LICENSE-MIXING document.

CONTACT

  If you have problems, questions, ideas or suggestions, please contact us
  by posting to a suitable mailing list. See http://curl.haxx.se/mail/

  All contributors to the project are listed in the THANKS document.

WEB SITE

  Visit the curl web site for the latest news and downloads:

        http://curl.haxx.se/

GIT

  To download the very latest source off the GIT server do this:

    git clone https://github.com/bagder/curl.git

  (you'll get a directory named curl created, filled with the source code)

NOTICE

  Curl contains pieces of source code that is Copyright (c) 1998, 1999
  Kungliga Tekniska Högskolan. This notice is included here to comply with the
  distribution terms.