]> granicus.if.org Git - curl/log
curl
8 years agocmake: disable poll for macOS
Peter Wu [Sun, 30 Oct 2016 23:45:17 +0000 (00:45 +0100)]
cmake: disable poll for macOS

Mirrors the autotools behavior introduced with curl-7_50_3-83-ga34c7ce.

Fixes #1089

8 years agoeasy: Initialize info variables on easy init and duphandle
Jay Satiro [Sun, 6 Nov 2016 03:05:52 +0000 (23:05 -0400)]
easy: Initialize info variables on easy init and duphandle

- Call Curl_initinfo on init and duphandle.

Prior to this change the statistical and informational variables were
simply zeroed by calloc on easy init and duphandle. While zero is the
correct default value for almost all info variables, there is one where
it isn't (filetime initializes to -1).

Bug: https://github.com/curl/curl/issues/1103
Reported-by: Neal Poole
8 years agocurl -w: added more decimal digits to timing counters
Mauro Rappa [Fri, 4 Nov 2016 14:45:49 +0000 (14:45 +0000)]
curl -w: added more decimal digits to timing counters

Now showing microsecond resolution.

Closes #1106

8 years agodist: add CMakeLists.txt to the tarball
Jakub Zakrzewski [Fri, 4 Nov 2016 19:21:48 +0000 (20:21 +0100)]
dist: add CMakeLists.txt to the tarball

8 years agombedtls: fix build with mbedtls versions < 2.4.0
Daniel Stenberg [Fri, 4 Nov 2016 10:13:16 +0000 (11:13 +0100)]
mbedtls: fix build with mbedtls versions < 2.4.0

Regression added in 62a8095e714

Reported-by: Tony Kelman
Discussed in #1087

8 years agoconfigure: verify that compiler groks -Werror=partial-availability
Daniel Stenberg [Thu, 3 Nov 2016 22:37:59 +0000 (23:37 +0100)]
configure: verify that compiler groks -Werror=partial-availability

Reported-by: bemoody
Fixes #1104

8 years agodocs: shorten and simplify the top comment in multi-uv.c
Daniel Stenberg [Thu, 3 Nov 2016 11:44:38 +0000 (12:44 +0100)]
docs: shorten and simplify the top comment in multi-uv.c

and change URL to use https

8 years agodocs: handle CURL_POLL_INOUT in multi-uv example
Andrei Sedoi [Wed, 2 Nov 2016 10:46:54 +0000 (10:46 +0000)]
docs: handle CURL_POLL_INOUT in multi-uv example

8 years agodocs: multi-uv: don't use CURLMsg after cleanup
Andrei Sedoi [Wed, 2 Nov 2016 09:00:20 +0000 (09:00 +0000)]
docs: multi-uv: don't use CURLMsg after cleanup

8 years agodocs: remove unused variables in multi-uv example
Andrei Sedoi [Wed, 2 Nov 2016 08:48:32 +0000 (08:48 +0000)]
docs: remove unused variables in multi-uv example

8 years agobump: start working on 7.51.1
Daniel Stenberg [Thu, 3 Nov 2016 09:08:26 +0000 (10:08 +0100)]
bump: start working on 7.51.1

8 years agowinbuild: remove strcase.obj from curl build
Daniel Stenberg [Wed, 2 Nov 2016 13:45:24 +0000 (14:45 +0100)]
winbuild: remove strcase.obj from curl build

Reported-by: Bruce Stephens
Fixes #1098

8 years agomsvc: removed a straggling reference to strequal.c
Dan Fandrich [Wed, 2 Nov 2016 08:11:50 +0000 (09:11 +0100)]
msvc: removed a straggling reference to strequal.c

Follow-up to 502acba2

8 years agoTHANKS: synced with 7.51.0 curl-7_51_0
Daniel Stenberg [Tue, 1 Nov 2016 07:45:14 +0000 (08:45 +0100)]
THANKS: synced with 7.51.0

8 years agoRELEASE-NOTES: 7.51.0
Daniel Stenberg [Tue, 1 Nov 2016 07:43:14 +0000 (08:43 +0100)]
RELEASE-NOTES: 7.51.0

8 years agoftp_done: don't clobber the passed in error code
Daniel Stenberg [Wed, 2 Nov 2016 06:22:27 +0000 (07:22 +0100)]
ftp_done: don't clobber the passed in error code

Coverity CID 1374359 pointed out the unused result value.

8 years agoftp: remove dead code in ftp_done
Daniel Stenberg [Wed, 2 Nov 2016 06:18:24 +0000 (07:18 +0100)]
ftp: remove dead code in ftp_done

Coverity CID 1374358

8 years agogenerate.bat: Include include/curl in libcurl VS projects
Jay Satiro [Wed, 2 Nov 2016 01:31:10 +0000 (21:31 -0400)]
generate.bat: Include include/curl in libcurl VS projects

.. because including those headers helps Visual Studio's Intellisense.

8 years agogenerate.bat: Remove strcase.[ch] from curl tool VS projects
Jay Satiro [Wed, 2 Nov 2016 01:29:44 +0000 (21:29 -0400)]
generate.bat: Remove strcase.[ch] from curl tool VS projects

..because they're no longer needed in the tool build. strcase is still
built by the libcurl project and exports curl_str(n)equal which is used
by the curl tool.

Bug: https://github.com/curl/curl/commit/9363f1a#all_commit_comments

8 years agometalink: simplify the hex parsing function
Daniel Stenberg [Tue, 1 Nov 2016 23:08:36 +0000 (00:08 +0100)]
metalink: simplify the hex parsing function

... and now it avoids using the libcurl toupper() function

8 years agofile: fix compiler warning
Michael Kaufmann [Tue, 1 Nov 2016 19:39:13 +0000 (20:39 +0100)]
file: fix compiler warning

follow-up to 46133aa5

8 years agostrcase: fixed Metalink builds by redefining checkprefix()
Dan Fandrich [Tue, 1 Nov 2016 10:44:11 +0000 (11:44 +0100)]
strcase: fixed Metalink builds by redefining checkprefix()

...to use the public function curl_strnequal(). This isn't ideal because
it adds extra overhead to any internal calls to checkprefix.

follow-up to 95bd2b3e

8 years agocurl.1: typo
Daniel Stenberg [Tue, 1 Nov 2016 09:27:40 +0000 (10:27 +0100)]
curl.1: typo

8 years agocurl.1: expand on how multiple uses of -o looks
Daniel Stenberg [Tue, 1 Nov 2016 09:24:49 +0000 (10:24 +0100)]
curl.1: expand on how multiple uses of -o looks

Suggested-by: Dan Jacobson
Issue: https://github.com/curl/curl/issues/1097

8 years agotests/util: get a private strncasecompare clone
Daniel Stenberg [Mon, 31 Oct 2016 22:49:54 +0000 (23:49 +0100)]
tests/util: get a private strncasecompare clone

... since the curlx_* code no longer provides one and we don't link
libcurl to these test servers.

8 years agostrcase: make the tool use curl_str[n]equal instead
Daniel Stenberg [Mon, 31 Oct 2016 20:49:38 +0000 (21:49 +0100)]
strcase: make the tool use curl_str[n]equal instead

As they are after all part of the public API. Saves space and reduces
complexity. Remove the strcase defines from the curlx_ family.

Suggested-by: Dan Fandrich
Idea: https://curl.haxx.se/mail/lib-2016-10/0136.html

8 years agogskit, nss: do not include strequal.h
Kamil Dudka [Mon, 31 Oct 2016 16:33:46 +0000 (17:33 +0100)]
gskit, nss: do not include strequal.h

follow-up to 811a693b80

8 years agostrcasecompare: include curl.h in strcase.c
Dan Fandrich [Mon, 31 Oct 2016 14:17:35 +0000 (15:17 +0100)]
strcasecompare: include curl.h in strcase.c

This should fix the "warning: 'curl_strequal' redeclared without
dllimport attribute: previous dllimport ignored" message and subsequent
link error on Windows because of the missing CURL_EXTERN on the
prototype.

8 years agostrcase: fix the remaining rawstr users
Daniel Stenberg [Mon, 31 Oct 2016 14:19:26 +0000 (15:19 +0100)]
strcase: fix the remaining rawstr users

8 years agomsvc builds: s/rawstr/strcase
Daniel Stenberg [Mon, 31 Oct 2016 12:35:09 +0000 (13:35 +0100)]
msvc builds: s/rawstr/strcase

Follow-up to 811a693b

8 years agostrcasecompare: replaced remaining rawstr.h with strcase.h
Dan Fandrich [Mon, 31 Oct 2016 11:51:45 +0000 (12:51 +0100)]
strcasecompare: replaced remaining rawstr.h with strcase.h

This is a followup to commit 811a693b

8 years agodigest_sspi: fix include
Marcel Raad [Mon, 31 Oct 2016 11:48:48 +0000 (12:48 +0100)]
digest_sspi: fix include

Fix compile break from 811a693b80

8 years agolibauthretry: use the external function curl_strequal
Dan Fandrich [Mon, 31 Oct 2016 11:42:47 +0000 (12:42 +0100)]
libauthretry: use the external function curl_strequal

The internal version strcasecompare isn't available outside libcurl

8 years agoRELEASE-NOTES: synced with d14538d2501ef0da
Daniel Stenberg [Mon, 31 Oct 2016 09:50:32 +0000 (10:50 +0100)]
RELEASE-NOTES: synced with d14538d2501ef0da

8 years agoconfigure: raise the default minimum version for macos to 10.8
Daniel Stenberg [Mon, 31 Oct 2016 09:19:22 +0000 (10:19 +0100)]
configure: raise the default minimum version for macos to 10.8

follow-up to 4f8d0b6f02aa7043. Since the darwinssl code breaks
otherwise. If you build without darwinssl 10.5 works fine.

8 years agounit1301: keep testing curl_strequal
Daniel Stenberg [Mon, 31 Oct 2016 08:53:34 +0000 (09:53 +0100)]
unit1301: keep testing curl_strequal

as that is still part of the API, fix from 8fe4bd084412f30

8 years agoldap: fix include
Daniel Stenberg [Mon, 31 Oct 2016 08:50:41 +0000 (09:50 +0100)]
ldap: fix include

Fix bug from 811a693b80

8 years agourl: remove unconditional idn2.h include
Daniel Stenberg [Mon, 31 Oct 2016 08:49:50 +0000 (09:49 +0100)]
url: remove unconditional idn2.h include

Mistake brought by 9c91ec778104a

8 years agocurl_strequal: part of public API/ABI, needs to be kept
Daniel Stenberg [Mon, 31 Oct 2016 08:45:17 +0000 (09:45 +0100)]
curl_strequal: part of public API/ABI, needs to be kept

These two public functions have been mentioned as deprecated since a
very long time but since they are still part of the API and ABI we need
to keep them around.

8 years agostrcase: s/strequal/strcasecompare
Daniel Stenberg [Mon, 31 Oct 2016 08:37:30 +0000 (09:37 +0100)]
strcase: s/strequal/strcasecompare

some more follow-ups to 811a693b80

8 years agoldap: fix strcase use
Daniel Stenberg [Mon, 31 Oct 2016 08:30:36 +0000 (09:30 +0100)]
ldap: fix strcase use

follow-up to 811a693b80

8 years agotest165: adapted to the libidn2 use and IDNA2008 fix
Daniel Stenberg [Mon, 31 Oct 2016 07:35:08 +0000 (08:35 +0100)]
test165: adapted to the libidn2 use and IDNA2008 fix

8 years agocookie: replace use of fgets() with custom version
Daniel Stenberg [Tue, 27 Sep 2016 15:36:19 +0000 (17:36 +0200)]
cookie: replace use of fgets() with custom version

... that will ignore lines that are too long to fit in the buffer.

CVE-2016-8615

Bug: https://curl.haxx.se/docs/adv_20161102A.html
Reported-by: Cure53
8 years agostrcasecompare: all case insensitive string compares ignore locale now
Daniel Stenberg [Fri, 30 Sep 2016 16:54:02 +0000 (18:54 +0200)]
strcasecompare: all case insensitive string compares ignore locale now

We had some confusions on when each function was used. We should not act
differently on different locales anyway.

8 years agostrcasecompare: is the new name for strequal()
Daniel Stenberg [Fri, 30 Sep 2016 15:15:05 +0000 (17:15 +0200)]
strcasecompare: is the new name for strequal()

... to make it less likely that we forget that the function actually
does case insentive compares. Also replaced several invokes of the
function with a plain strcmp when case sensitivity is not an issue (like
comparing with "-").

8 years agoftp: check for previous patch must be case sensitive!
Daniel Stenberg [Fri, 30 Sep 2016 14:46:47 +0000 (16:46 +0200)]
ftp: check for previous patch must be case sensitive!

... otherwise example.com/PATH and example.com/path would be assumed to
be the same and they usually aren't!

8 years agoSSH: check md5 fingerprint case sensitively
Daniel Stenberg [Wed, 28 Sep 2016 08:20:35 +0000 (10:20 +0200)]
SSH: check md5 fingerprint case sensitively

8 years agoconnectionexists: use case sensitive user/password comparisons
Daniel Stenberg [Tue, 27 Sep 2016 16:01:53 +0000 (18:01 +0200)]
connectionexists: use case sensitive user/password comparisons

CVE-2016-8616

Bug: https://curl.haxx.se/docs/adv_20161102B.html
Reported-by: Cure53
8 years agobase64: check for integer overflow on large input
Daniel Stenberg [Tue, 27 Sep 2016 22:05:12 +0000 (00:05 +0200)]
base64: check for integer overflow on large input

CVE-2016-8617

Bug: https://curl.haxx.se/docs/adv_20161102C.html
Reported-by: Cure53
8 years agokrb5: avoid realloc(0)
Daniel Stenberg [Wed, 28 Sep 2016 10:56:02 +0000 (12:56 +0200)]
krb5: avoid realloc(0)

If the requested size is zero, bail out with error instead of doing a
realloc() that would cause a double-free: realloc(0) acts as a free()
and then there's a second free in the cleanup path.

CVE-2016-8619

Bug: https://curl.haxx.se/docs/adv_20161102E.html
Reported-by: Cure53
8 years agoaprintf: detect wrap-around when growing allocation
Daniel Stenberg [Wed, 28 Sep 2016 08:15:34 +0000 (10:15 +0200)]
aprintf: detect wrap-around when growing allocation

On 32bit systems we could otherwise wrap around after 2GB and allocate 0
bytes and crash.

CVE-2016-8618

Bug: https://curl.haxx.se/docs/adv_20161102D.html
Reported-by: Cure53
8 years agorange: reject char globs with missing end like '[L-]'
Daniel Stenberg [Tue, 4 Oct 2016 15:25:09 +0000 (17:25 +0200)]
range: reject char globs with missing end like '[L-]'

... which previously would lead to out of boundary reads.

Reported-by: Luật Nguyễn
8 years agoglob_next_url: make sure to stay within the given output buffer
Daniel Stenberg [Mon, 3 Oct 2016 16:23:22 +0000 (18:23 +0200)]
glob_next_url: make sure to stay within the given output buffer

8 years agorange: prevent negative end number in a glob range
Daniel Stenberg [Mon, 3 Oct 2016 15:27:16 +0000 (17:27 +0200)]
range: prevent negative end number in a glob range

CVE-2016-8620

Bug: https://curl.haxx.se/docs/adv_20161102F.html
Reported-by: Luật Nguyễn
8 years agoparsedate: handle cut off numbers better
Daniel Stenberg [Tue, 4 Oct 2016 14:59:38 +0000 (16:59 +0200)]
parsedate: handle cut off numbers better

... and don't read outside of the given buffer!

CVE-2016-8621

bug: https://curl.haxx.se/docs/adv_20161102G.html
Reported-by: Luật Nguyễn
8 years agoescape: avoid using curl_easy_unescape() internally
Daniel Stenberg [Sat, 8 Oct 2016 09:21:38 +0000 (11:21 +0200)]
escape: avoid using curl_easy_unescape() internally

Since the internal Curl_urldecode() function has a better API.

8 years agounescape: avoid integer overflow
Daniel Stenberg [Tue, 4 Oct 2016 16:56:45 +0000 (18:56 +0200)]
unescape: avoid integer overflow

CVE-2016-8622

Bug: https://curl.haxx.se/docs/adv_20161102H.html
Reported-by: Cure53
8 years agocookies: getlist() now holds deep copies of all cookies
Daniel Stenberg [Tue, 4 Oct 2016 21:26:13 +0000 (23:26 +0200)]
cookies: getlist() now holds deep copies of all cookies

Previously it only held references to them, which was reckless as the
thread lock was released so the cookies could get modified by other
handles that share the same cookie jar over the share interface.

CVE-2016-8623

Bug: https://curl.haxx.se/docs/adv_20161102I.html
Reported-by: Cure53
8 years agoTODO: remove IDNA2008
Daniel Stenberg [Mon, 24 Oct 2016 12:26:38 +0000 (14:26 +0200)]
TODO: remove IDNA2008

8 years agoidn: switch to libidn2 use and IDNA2008 support
Daniel Stenberg [Wed, 12 Oct 2016 07:01:06 +0000 (09:01 +0200)]
idn: switch to libidn2 use and IDNA2008 support

CVE-2016-8625

Bug: https://curl.haxx.se/docs/adv_20161102K.html
Reported-by: Christian Heimes
8 years agotest1246: verify URL parsing with host name ending with '#'
Daniel Stenberg [Mon, 10 Oct 2016 22:54:51 +0000 (00:54 +0200)]
test1246: verify URL parsing with host name ending with '#'

8 years agourlparse: accept '#' as end of host name
Daniel Stenberg [Mon, 10 Oct 2016 22:48:35 +0000 (00:48 +0200)]
urlparse: accept '#' as end of host name

'http://example.com#@127.0.0.1/x.txt' equals a request to example.com
for the '/' document with the rest of the URL being a fragment.

CVE-2016-8624

Bug: https://curl.haxx.se/docs/adv_20161102J.html
Reported-by: Fernando Muñoz
8 years agoINTERNALS: better markdown (follow-up)
Jay Satiro [Mon, 31 Oct 2016 04:38:27 +0000 (00:38 -0400)]
INTERNALS: better markdown (follow-up)

- Wrap more words with underscores in backticks.

Follow-up to 13f4913.

8 years agoINTERNALS: better markdown
Daniel Stenberg [Sun, 30 Oct 2016 22:45:25 +0000 (23:45 +0100)]
INTERNALS: better markdown

words with underscore need to be within `these`

Bug: https://github.com/curl/curl-www/issues/19
Reported-by : Jay Satiro

8 years agomk-ca-bundle.vbs: Fix UTF-8 output
Jay Satiro [Sun, 30 Oct 2016 05:01:29 +0000 (01:01 -0400)]
mk-ca-bundle.vbs: Fix UTF-8 output

- Change initial message box to mention delay when downloading/parsing.

Since there is no progress meter it was somewhat unexpected that after
choosing a filename nothing appears to happen, when actually the cert
data is in the process of being downloaded and parsed.

- Warn if OpenSSL is not present.

- Use a UTF-8 stream to make the ca-bundle data.

- Save the UTF-8 ca-bundle stream as binary so that no BOM is added.

---

This is a follow-up to d2c6d15 which switched mk-ca-bundle.vbs output to
ANSI due to corrupt UTF-8 output, now fixed.

This change completes making the default certificate bundle output of
mk-ca-bundle.vbs as close as possible to that of mk-ca-bundle.pl, which
should make it easier to review any difference between their output.

Ref: https://github.com/curl/curl/pull/1012

8 years agoBINDINGS: converted to markdown
Daniel Stenberg [Fri, 28 Oct 2016 07:46:49 +0000 (09:46 +0200)]
BINDINGS: converted to markdown

To make it render better on the web site, at the price of it becoming
slightly less readable as text.

8 years agoCURLMOPT_MAX_PIPELINE_LENGTH.3: Clarify it's not for HTTP/2
Jay Satiro [Fri, 28 Oct 2016 03:15:12 +0000 (23:15 -0400)]
CURLMOPT_MAX_PIPELINE_LENGTH.3: Clarify it's not for HTTP/2

- Clarify that this option is only for HTTP/1.1 pipelining.

Bug: https://github.com/curl/curl/issues/1059
Reported-by: Jeroen Ooms
Assisted-by: Daniel Stenberg
8 years agoKNOWN_BUGS: HTTP/2 server push enabled when no pushes can be accepted
Daniel Stenberg [Thu, 27 Oct 2016 21:47:59 +0000 (23:47 +0200)]
KNOWN_BUGS: HTTP/2 server push enabled when no pushes can be accepted

Closes #927

8 years agoKNOWN_BUGS: c-ares deviates from stock resolver on http://1346569778
Daniel Stenberg [Thu, 27 Oct 2016 21:45:58 +0000 (23:45 +0200)]
KNOWN_BUGS: c-ares deviates from stock resolver on http://1346569778

Closes #893

8 years agoconfigure.in: Fix test syntax
Michael Osipov [Thu, 27 Oct 2016 11:39:37 +0000 (13:39 +0200)]
configure.in: Fix test syntax

Some versions of test allow == for equality, but others (such as the HP-UX
version) do not.  Use a single = for correctness.

Error output:
checking for monotonic clock_gettime... ./configure[20445]: ==: A test command parameter is not valid.

8 years agoSECURITY: minor updates
Daniel Stenberg [Thu, 27 Oct 2016 08:21:52 +0000 (10:21 +0200)]
SECURITY: minor updates

- we allow the security push up to 48 hours before the release

- add a mention about possible pre-notifications

- lower case the 'curl-security' title

8 years agodocs: fix req->data in multi-uv example
Andrei Sedoi [Thu, 27 Oct 2016 06:43:04 +0000 (06:43 +0000)]
docs: fix req->data in multi-uv example

Closes #1088

8 years agombedtls: stop using deprecated include file
Daniel Stenberg [Wed, 26 Oct 2016 21:38:04 +0000 (23:38 +0200)]
mbedtls: stop using deprecated include file

Reported-by: wyattoday
Fixes #1087

8 years agonss: fix tight loop in non-blocking TLS handhsake over proxy
Martin Frodl [Mon, 24 Oct 2016 15:44:45 +0000 (17:44 +0200)]
nss: fix tight loop in non-blocking TLS handhsake over proxy

... in case the handshake completes before entering
CURLM_STATE_PROTOCONNECT

Bug: https://bugzilla.redhat.com/1388162

8 years agomk-ca-bundle: Update the vbscript version
Jay Satiro [Tue, 25 Oct 2016 07:17:26 +0000 (03:17 -0400)]
mk-ca-bundle: Update the vbscript version

Bring the VBScript version more in line with the perl version:

- Change timestamp to UTC.

- Change URL retrieval to HTTPS-only by default.

- Comment out the options that disabled SSL cert checking by default.

- Assume OpenSSL is present, get SHA256. And add a flag to toggle it.

- Fix cert issuer name output.

The cert issuer output is now ansi, converted from UTF-8. Prior to this
it was corrupt UTF-8. It turns out though we can work with UTF-8 the
FSO object that writes ca-bundle can't write UTF-8, so there will have
to be some alternative if UTF-8 is needed (like an ADODB.Stream).

- Disable the certificate text info feature.

The certificate text info doesn't work properly with any recent OpenSSL.

8 years agoTODO: indent code to make it render properly
Daniel Stenberg [Mon, 24 Oct 2016 12:03:08 +0000 (14:03 +0200)]
TODO: indent code to make it render properly

8 years agoTODO: Remove the generated include file
Daniel Stenberg [Mon, 24 Oct 2016 11:38:29 +0000 (13:38 +0200)]
TODO: Remove the generated include file

8 years agoTODO: add "--retry should resume"
Daniel Stenberg [Mon, 24 Oct 2016 09:56:26 +0000 (11:56 +0200)]
TODO: add "--retry should resume"

See #1084

8 years agomk-ca-bundle.1: document -k
Daniel Stenberg [Mon, 24 Oct 2016 08:24:27 +0000 (10:24 +0200)]
mk-ca-bundle.1: document -k

Brought in 1ad2bdcf110266c. Now does HTTPS by default and needs -k to
fall back to plain HTTP.

8 years agomk-ca-bundle: Change URL retrieval to HTTPS-only by default
Jay Satiro [Thu, 15 Sep 2016 06:26:56 +0000 (02:26 -0400)]
mk-ca-bundle: Change URL retrieval to HTTPS-only by default

- Change all predefined Mozilla URLs to HTTPS (Gregory Szorc).

- New option -k to allow URLs other than HTTPS and enable HTTP fallback.

Prior to this change the default URL retrieval mode was to fall back to
HTTP if HTTPS didn't work.

Reported-by: Gregory Szorc
Closes #1012

8 years agoRELEASE-NOTES: synced with 50ee3aaf1a9b22d
Daniel Stenberg [Mon, 24 Oct 2016 06:03:07 +0000 (08:03 +0200)]
RELEASE-NOTES: synced with 50ee3aaf1a9b22d

8 years agoINSTALL.md: Updated minimum file sizes for 7.50.3
Dan Fandrich [Sun, 23 Oct 2016 20:42:19 +0000 (22:42 +0200)]
INSTALL.md: Updated minimum file sizes for 7.50.3

8 years agomulti: force connections to get closed in close_all_connections
Daniel Stenberg [Fri, 21 Oct 2016 09:03:10 +0000 (11:03 +0200)]
multi: force connections to get closed in close_all_connections

Several independent reports on infinite loops hanging in the
close_all_connections() function when closing a multi handle, can be
fixed by first marking the connection to get closed before calling
Curl_disconnect.

This is more fixing-the-symptom rather than the underlying problem
though.

Bug: https://curl.haxx.se/mail/lib-2016-10/0011.html
Bug: https://curl.haxx.se/mail/lib-2016-10/0059.html

Reported-by: Dan Fandrich, Valentin David, Miloš Ljumović
8 years agocurl_multi_remove_handle: fix a double-free
Anders Bakken [Thu, 20 Oct 2016 16:37:05 +0000 (09:37 -0700)]
curl_multi_remove_handle: fix a double-free

In short the easy handle needs to be disconnected from its connection at
this point since the connection still is serving other easy handles.

In our app we can reliably reproduce a crash in our http2 stress test
that is fixed by this change. I can't easily reproduce the same test in
a small example.

This is the gdb/asan output:

==11785==ERROR: AddressSanitizer: heap-use-after-free on address 0xe9f4fb80 at pc 0x09f41f19 bp 0xf27be688 sp 0xf27be67c
READ of size 4 at 0xe9f4fb80 thread T13 (RESOURCE_HTTP)
    #0 0x9f41f18 in curl_multi_remove_handle /path/to/source/3rdparty/curl/lib/multi.c:666

0xe9f4fb80 is located 0 bytes inside of 1128-byte region [0xe9f4fb80,0xe9f4ffe8)
freed by thread T13 (RESOURCE_HTTP) here:
    #0 0xf7b1b5c2 in __interceptor_free /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_malloc_linux.cc:45
    #1 0x9f7862d in conn_free /path/to/source/3rdparty/curl/lib/url.c:2808
    #2 0x9f78c6a in Curl_disconnect /path/to/source/3rdparty/curl/lib/url.c:2876
    #3 0x9f41b09 in multi_done /path/to/source/3rdparty/curl/lib/multi.c:615
    #4 0x9f48017 in multi_runsingle /path/to/source/3rdparty/curl/lib/multi.c:1896
    #5 0x9f490f1 in curl_multi_perform /path/to/source/3rdparty/curl/lib/multi.c:2123
    #6 0x9c4443c in perform /path/to/source/src/net/resourcemanager/ResourceManagerCurlThread.cpp:854
    #7 0x9c445e0 in ...
    #8 0x9c4cf1d in ...
    #9 0xa2be6b5 in ...
    #10 0xf7aa5780 in asan_thread_start /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
    #11 0xf4d3a16d in __clone (/lib/i386-linux-gnu/libc.so.6+0xe716d)

previously allocated by thread T13 (RESOURCE_HTTP) here:
    #0 0xf7b1ba27 in __interceptor_calloc /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_malloc_linux.cc:70
    #1 0x9f7dfa6 in allocate_conn /path/to/source/3rdparty/curl/lib/url.c:3904
    #2 0x9f88ca0 in create_conn /path/to/source/3rdparty/curl/lib/url.c:5797
    #3 0x9f8c928 in Curl_connect /path/to/source/3rdparty/curl/lib/url.c:6438
    #4 0x9f45a8c in multi_runsingle /path/to/source/3rdparty/curl/lib/multi.c:1411
    #5 0x9f490f1 in curl_multi_perform /path/to/source/3rdparty/curl/lib/multi.c:2123
    #6 0x9c4443c in perform /path/to/source/src/net/resourcemanager/ResourceManagerCurlThread.cpp:854
    #7 0x9c445e0 in ...
    #8 0x9c4cf1d in ...
    #9 0xa2be6b5 in ...
    #10 0xf7aa5780 in asan_thread_start /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
    #11 0xf4d3a16d in __clone (/lib/i386-linux-gnu/libc.so.6+0xe716d)

SUMMARY: AddressSanitizer: heap-use-after-free /path/to/source/3rdparty/curl/lib/multi.c:666 in curl_multi_remove_handle
Shadow bytes around the buggy address:
  0x3d3e9f20: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9f30: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9f40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9f50: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
  0x3d3e9f60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x3d3e9f70:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9f80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9f90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9fa0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9fb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x3d3e9fc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==11785==ABORTING

Thread 14 "RESOURCE_HTTP" received signal SIGABRT, Aborted.
[Switching to Thread 0xf27bfb40 (LWP 12324)]
0xf7fd8be9 in __kernel_vsyscall ()
 (gdb) bt
 #0  0xf7fd8be9 in __kernel_vsyscall ()
 #1  0xf4c7ee89 in __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:54
 #2  0xf4c803e7 in __GI_abort () at abort.c:89
 #3  0xf7b2ef2e in __sanitizer::Abort () at /opt/toolchain/src/gcc-6.2.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc:122
 #4  0xf7b262fa in __sanitizer::Die () at /opt/toolchain/src/gcc-6.2.0/libsanitizer/sanitizer_common/sanitizer_common.cc:145
 #5  0xf7b21ab3 in __asan::ScopedInErrorReport::~ScopedInErrorReport (this=0xf27be171, __in_chrg=<optimized out>) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_report.cc:689
 #6  0xf7b214a5 in __asan::ReportGenericError (pc=166993689, bp=4068206216, sp=4068206204, addr=3925146496, is_write=false, access_size=4, exp=0, fatal=true) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_report.cc:1074
 #7  0xf7b21fce in __asan::__asan_report_load4 (addr=3925146496) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_rtl.cc:129
 #8  0x09f41f19 in curl_multi_remove_handle (multi=0xf3406080, data=0xde582400) at /path/to/source3rdparty/curl/lib/multi.c:666
 #9  0x09f6b277 in Curl_close (data=0xde582400) at /path/to/source3rdparty/curl/lib/url.c:415
 #10 0x09f3354e in curl_easy_cleanup (data=0xde582400) at /path/to/source3rdparty/curl/lib/easy.c:860
 #11 0x09c6de3f in ...
 #12 0x09c378c5 in ...
 #13 0x09c48133 in ...
 #14 0x09c4d092 in ...
 #15 0x0a2be6b6 in ...
 #16 0xf7aa5781 in asan_thread_start (arg=0xf2d22938) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
 #17 0xf5de52b5 in start_thread (arg=0xf27bfb40) at pthread_create.c:333
 #18 0xf4d3a16e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:114

Fixes #1083

8 years agotestcurl.1: fix the URL to the autobuild summary
Daniel Stenberg [Sat, 22 Oct 2016 13:15:34 +0000 (15:15 +0200)]
testcurl.1: fix the URL to the autobuild summary

8 years agotestcurl.1: update URLs
Daniel Stenberg [Sat, 22 Oct 2016 12:57:20 +0000 (14:57 +0200)]
testcurl.1: update URLs

8 years agoINSTALL: converted to markdown => INSTALL.md
Daniel Stenberg [Fri, 21 Oct 2016 13:55:24 +0000 (15:55 +0200)]
INSTALL: converted to markdown => INSTALL.md

Also heavily edited for content. Removed lots of old cruft that we added
like 10+ years ago that is likely incorrect by now.

Also removed INSTALL.devcpp for same reason.

8 years agoconfigure: Check for other variants of the -m*os*-version-min flags
Martin Storsjo [Thu, 20 Oct 2016 10:16:10 +0000 (13:16 +0300)]
configure: Check for other variants of the -m*os*-version-min flags

In addition to -miphoneos-version-min, the same version can be set
using -mios-version-min. And for WatchOS and TvOS, there's
-mwatchos-version-min and -mtvos-version-min.

8 years agoconfigure: set min version flags for builds on mac
Daniel Stenberg [Wed, 19 Oct 2016 12:36:32 +0000 (14:36 +0200)]
configure: set min version flags for builds on mac

This helps building binaries that can work on multiple macOS versions.

Help-by: Martin Storsjö
Fixes #1069

8 years agocurl_multi_add_handle: set timeouts in closure handles
Daniel Stenberg [Tue, 18 Oct 2016 15:32:01 +0000 (17:32 +0200)]
curl_multi_add_handle: set timeouts in closure handles

The closure handle only ever has default timeouts set. To improve the
state somewhat we clone the timeouts from each added handle so that the
closure handle always has the same timeouts as the most recently added
easy handle.

Fixes #739

8 years agoconfigure/CURL_CHECK_FUNC_POLL: disable poll completely on mac
Daniel Stenberg [Tue, 18 Oct 2016 20:42:53 +0000 (22:42 +0200)]
configure/CURL_CHECK_FUNC_POLL: disable poll completely on mac

... so that the same libcurl build easier can run on any version.

Follow-up to issue #1057

8 years agoRELEASE-NOTES: synced with f36f8c14551efc6772
Daniel Stenberg [Tue, 18 Oct 2016 15:17:54 +0000 (17:17 +0200)]
RELEASE-NOTES: synced with f36f8c14551efc6772

8 years agotest14xx: fixed --libcurl output tests again after 8e8afa82cbb
Daniel Stenberg [Tue, 18 Oct 2016 12:10:59 +0000 (14:10 +0200)]
test14xx: fixed --libcurl output tests again after 8e8afa82cbb

8 years agos/cURL/curl
Daniel Stenberg [Tue, 18 Oct 2016 11:59:54 +0000 (13:59 +0200)]
s/cURL/curl

The tool was never called cURL, only the project. But even so, we have
more and more over time switched to just use lower case.

8 years agopolarssl: indented code, removed unused variables
Daniel Stenberg [Tue, 18 Oct 2016 11:27:37 +0000 (13:27 +0200)]
polarssl: indented code, removed unused variables

8 years agopolarssl: reduce #ifdef madness with a macro
Daniel Stenberg [Tue, 18 Oct 2016 11:17:05 +0000 (13:17 +0200)]
polarssl: reduce #ifdef madness with a macro

8 years agopolarssl: fix unaligned SSL session-id lock
Daniel Stenberg [Tue, 18 Oct 2016 11:11:55 +0000 (13:11 +0200)]
polarssl: fix unaligned SSL session-id lock

8 years agoCurl_polarsslthreadlock_thread_setup: clear array at init
Daniel Stenberg [Tue, 18 Oct 2016 11:05:43 +0000 (13:05 +0200)]
Curl_polarsslthreadlock_thread_setup: clear array at init

... since if it fails to init the entire array and then tries to clean
it up, it would attempt to work on an uninitialized pointer.

8 years agocurl: set INTERLEAVEDATA too
Daniel Stenberg [Tue, 18 Oct 2016 10:09:56 +0000 (12:09 +0200)]
curl: set INTERLEAVEDATA too

As otherwise the callback could be called with a NULL pointer when RTSP
data is provided.

8 years agogopher: properly return error for poll failures
Daniel Stenberg [Tue, 18 Oct 2016 09:12:03 +0000 (11:12 +0200)]
gopher: properly return error for poll failures