1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00
Go to file
Jay Satiro fa64b0fc4b content_encoding: fix inflate_stream for no bytes available
- Don't call zlib's inflate() when avail_in stream bytes is 0.

This is a follow up to the parent commit 19e66e5. Prior to that change
libcurl's inflate_stream could call zlib's inflate even when no bytes
were available, causing inflate to return Z_BUF_ERROR, and then
inflate_stream would treat that as a hard error and return
CURLE_BAD_CONTENT_ENCODING.

According to the zlib FAQ, Z_BUF_ERROR is not fatal.

This bug would happen randomly since packet sizes are arbitrary. A test
of 10,000 transfers had 55 fail (ie 0.55%).

Ref: https://zlib.net/zlib_faq.html#faq05

Closes https://github.com/curl/curl/pull/2060
2017-11-09 01:36:50 -05:00
.github ISSUE_TEMPLATE: Add a comment not to file security issues on github 2017-07-11 11:48:37 -04:00
CMake cmake: Export libcurl and curl targets to use by other cmake projects 2017-10-28 17:22:47 +02:00
docs HTTP: implement Brotli content encoding 2017-11-05 15:28:16 +01:00
include HTTP: implement Brotli content encoding 2017-11-05 15:28:16 +01:00
lib content_encoding: fix inflate_stream for no bytes available 2017-11-09 01:36:50 -05:00
m4 configure: use -Wno-varargs on clang 3.9[.X] debug builds 2017-09-08 23:16:16 +02:00
packages auth: add support for RFC7616 - HTTP Digest access authentication 2017-10-28 16:32:43 +02:00
projects build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported 2017-10-04 01:04:43 -04:00
scripts scripts/contri*sh: use "git log --use-mailmap" 2017-08-18 22:41:48 +02:00
src src/Makefile.m32: fix typo in brotli lib customization 2017-11-06 01:05:52 +00:00
tests HTTP: implement Brotli content encoding 2017-11-05 15:28:16 +01:00
winbuild winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2 2017-10-12 13:54:00 +02:00
.dir-locals.el Add .dir-locals and set c-basic-offset to 2. 2015-12-23 10:16:14 +01:00
.gitattributes .gitattributes: force shell scripts to LF 2017-04-17 08:32:13 +02:00
.gitignore ossfuzz: Move to C++ for curl_fuzzer. 2017-09-02 11:07:55 +02:00
.mailmap mailmap: de-duplify some git authors 2017-08-18 17:49:20 +02:00
.travis.yml travis: add a job with brotli enabled 2017-11-05 15:38:17 +01:00
acinclude.m4 CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG 2017-08-17 10:27:00 +02:00
appveyor.yml appveyor: add a win32 build 2017-10-27 23:40:04 +02:00
buildconf includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
buildconf.bat includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
CHANGES CHANGES: spell fix, use correct path to script 2017-02-07 08:22:37 +01:00
CMakeLists.txt timeval: use mach time on MacOS 2017-10-30 15:27:46 +01:00
configure.ac HTTP: implement Brotli content encoding 2017-11-05 15:28:16 +01:00
COPYING COPYING: update the generic copyright year range 2017-01-07 20:25:43 +01:00
curl-config.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
libcurl.pc.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
MacOSX-Framework includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
Makefile.am cmake: Export libcurl and curl targets to use by other cmake projects 2017-10-28 17:22:47 +02:00
Makefile.dist VC: remove the makefile.vc6 build infra 2017-01-23 14:27:32 +01:00
maketgz maketgz: remove old *.dist files before making the tarball 2017-08-10 22:56:49 +02:00
README URLs: follow GitHub project rename (also Travis CI) 2016-02-04 23:01:38 +01:00
README.md README.md: show the coverall coverage on github 2017-06-06 14:40:57 +02:00
RELEASE-NOTES RELEASE-NOTES: synced with ee8016b3d 2017-11-04 22:03:18 +01:00

curl logo CII Best Practices Coverity passed Build Status Coverage Status

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.

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

Website

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

Git

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

git clone https://github.com/curl/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.