Skip to content

Commit df6e452

Browse files
authored
Merge pull request #1099 from patrikjuvonen/vendor/curl-7.66.0
Update curl from 7.65.3 to 7.66.0
2 parents 3ef4ce3 + 5d8e4e4 commit df6e452

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+10368
-7139
lines changed

vendor/curl/CHANGES

Lines changed: 5304 additions & 5694 deletions
Large diffs are not rendered by default.

vendor/curl/RELEASE-NOTES

Lines changed: 176 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,103 @@
1-
curl and libcurl 7.65.3
1+
curl and libcurl 7.66.0
22

3-
Public curl releases: 184
4-
Command line options: 221
5-
curl_easy_setopt() options: 268
6-
Public functions in libcurl: 80
3+
Public curl releases: 185
4+
Command line options: 225
5+
curl_easy_setopt() options: 269
6+
Public functions in libcurl: 81
77
Contributors: 1991
88

9+
This release includes the following changes:
10+
11+
o CURLINFO_RETRY_AFTER: parse the Retry-After header value [35]
12+
o HTTP3: initial (experimental still not working) support [5]
13+
o curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool [27]
14+
o curl: support parallel transfers with -Z [4]
15+
o curl_multi_poll: a sister to curl_multi_wait() that waits more [28]
16+
o sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID [27]
17+
918
This release includes the following bugfixes:
1019

11-
o progress: make the progress meter appear again [1]
20+
o CVE-2019-5481: FTP-KRB double-free [64]
21+
o CVE-2019-5482: TFTP small blocksize heap buffer overflow [65]
22+
o CI: remove duplicate configure flag for LGTM.com
23+
o CMake: remove needless newlines at end of gss variables
24+
o CMake: use platform dependent name for dlopen() library [62]
25+
o CURLINFO docs: mention that in redirects times are added [55]
26+
o CURLOPT_ALTSVC.3: use a "" file name to not load from a file
27+
o CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
28+
o CURLOPT_HEADERFUNCTION.3: clarify [54]
29+
o CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly [33]
30+
o CURLOPT_READFUNCTION.3: provide inline example
31+
o CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2 [51]
32+
o Curl_addr2string: take an addrlen argument too [61]
33+
o Curl_fillreadbuffer: avoid double-free trailer buf on error [66]
34+
o HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown [10]
35+
o alt-svc: add protocol version selection masking [31]
36+
o alt-svc: fix removal of expired cache entry [30]
37+
o alt-svc: make it use h3-22 with ngtcp2 as well
38+
o alt-svc: more liberal ALPN name parsing [17]
39+
o alt-svc: send Alt-Used: in redirected requests [32]
40+
o alt-svc: with quiche, use the quiche h3 alpn string [16]
41+
o appveyor: pass on -k to make
42+
o asyn-thread: create a socketpair to wait on [14]
43+
o build-openssl: fix build with Visual Studio 2019 [45]
44+
o cleanup: move functions out of url.c and make them static [58]
45+
o cleanup: remove the 'numsocks' argument used in many places [25]
46+
o configure: avoid undefined check_for_ca_bundle [37]
47+
o curl.h: add CURL_HTTP_VERSION_3 to the version enum
48+
o curl.h: fix outdated comment [23]
49+
o curl: cap the maximum allowed values for retry time arguments [13]
50+
o curl: handle a libcurl build without netrc support [63]
51+
o curl: make use of CURLINFO_RETRY_AFTER when retrying [35]
52+
o curl: remove outdated comment [24]
53+
o curl: use .curlrc (with a dot) on Windows [52]
54+
o curl: use CURLINFO_PROTOCOL to check for HTTP(s)
55+
o curl_global_init_mem.3: mention it was added in 7.12.0
56+
o curl_version: bump string buffer size to 250
57+
o curl_version_info.3: mentioned ALTSVC and HTTP3
58+
o curl_version_info: offer quic (and h3) library info [38]
59+
o curl_version_info: provide nghttp2 details [2]
60+
o defines: avoid underscore-prefixed defines [47]
61+
o docs/ALTSVC: remove what works and the experimental explanation [34]
62+
o docs/EXPERIMENTAL: explain what it means and what's experimental now
63+
o docs/MANUAL.md: converted to markdown from plain text [3]
64+
o docs/examples/curlx: fix errors [48]
65+
o docs: s/curl_debug/curl_dbg_debug in comments and docs [36]
66+
o easy: resize receive buffer on easy handle reset [9]
67+
o examples: Avoid reserved names in hiperfifo examples [8]
68+
o examples: add http3.c, altsvc.c and http3-present.c [40]
69+
o getenv: support up to 4K environment variable contents on windows [21]
70+
o http09: disable HTTP/0.9 by default in both tool and library [29]
71+
o http2: when marked for closure and wanted to close == OK [56]
72+
o http2_recv: trigger another read when the last data is returned [11]
73+
o http: fix use of credentials from URL when using HTTP proxy [44]
74+
o http_negotiate: improve handling of gss_init_sec_context() failures [18]
75+
o md4: Use our own MD4 when no crypto libraries are available [15]
76+
o multi: call detach_connection before Curl_disconnect [6]
77+
o netrc: make the code try ".netrc" on Windows [52]
78+
o nss: use TLSv1.3 as default if supported [39]
79+
o openssl: build warning free with boringssl [50]
80+
o openssl: use SSL_CTX_set_<min|max>_proto_version() when available [68]
81+
o plan9: add support for running on Plan 9 [22]
82+
o progress: reset download/uploaded counter between transfers [12]
83+
o readwrite_data: repair setting the TIMER_STARTTRANSFER stamp [26]
84+
o scp: fix directory name length used in memcpy [46]
85+
o smb: init *msg to NULL in smb_send_and_recv() [60]
86+
o smtp: check for and bail out on too short EHLO response [59]
87+
o source: remove names from source comments [1]
88+
o spnego_sspi: add typecast to fix build warning [49]
89+
o src/makefile: fix uncompressed hugehelp.c generation [19]
90+
o ssh-libssh: do not specify O_APPEND when not in append mode [7]
91+
o ssh: move code into vssh for SSH backends [53]
92+
o sspi: fix memory leaks [67]
93+
o tests: Replace outdated test case numbering documentation [43]
94+
o tftp: return error when packet is too small for options
95+
o timediff: make it 64 bit (if possible) even with 32 bit time_t [20]
96+
o travis: reduce number of torture tests in 'coverage' [42]
97+
o url: make use of new HTTP version if alt-svc has one [16]
98+
o urlapi: verify the IPv6 numerical address [69]
99+
o urldata: avoid 'generic', use dedicated pointers [57]
100+
o vauth: Use CURLE_AUTH_ERROR for auth function errors [41]
12101

13102
This release includes the following known bugs:
14103

@@ -17,11 +106,89 @@ This release includes the following known bugs:
17106
This release would not have looked like this without help, code, reports and
18107
advice from friends like these:
19108

20-
Chih-Hsuan Yen, Daniel Stenberg,
21-
(2 contributors)
109+
Alessandro Ghedini, Alex Mayorga, Amit Katyal, Balazs Kovacsics,
110+
Brad Spencer, Brandon Dong, Carlo Marcelo Arenas Belón, Christopher Head,
111+
Clément Notin, codesniffer13 on github, Daniel Gustafsson, Daniel Stenberg,
112+
Dominik Hölzl, Eric Wong, Felix Hädicke, Gergely Nagy, Gisle Vanem,
113+
Igor Makarov, Ironbars13 on github, Jason Lee, Jeremy Lainé,
114+
Jonathan Cardoso Machado, Junho Choi, Kamil Dudka, Kyle Abramowitz,
115+
Kyohei Kadota, Lance Ware, Marcel Raad, Max Dymond, Michael Lee,
116+
Michal Čaplygin, migueljcrum on github, Mike Crowe, niallor on github,
117+
osabc on github, patnyb on github, Patrick Monnerat, Peter Wu, Ray Satiro,
118+
Rolf Eike Beer, Steve Holme, Tatsuhiro Tsujikawa, The Infinnovation team,
119+
Thomas Vegas, Tom van der Woerdt, Yiming Jing,
120+
(46 contributors)
22121

23122
Thanks! (and sorry if I forgot to mention someone)
24123

25124
References to bug reports and discussions on issues:
26125

27-
[1] = https://curl.haxx.se/bug/?i=4122
126+
[1] = https://curl.haxx.se/bug/?i=4129
127+
[2] = https://curl.haxx.se/bug/?i=4121
128+
[3] = https://curl.haxx.se/bug/?i=4131
129+
[4] = https://curl.haxx.se/bug/?i=3804
130+
[5] = https://curl.haxx.se/bug/?i=3500
131+
[6] = https://curl.haxx.se/bug/?i=4144
132+
[7] = https://curl.haxx.se/bug/?i=4147
133+
[8] = https://curl.haxx.se/bug/?i=4153
134+
[9] = https://curl.haxx.se/bug/?i=4143
135+
[10] = https://curl.haxx.se/bug/?i=4138
136+
[11] = https://curl.haxx.se/bug/?i=4043
137+
[12] = https://curl.haxx.se/bug/?i=4084
138+
[13] = https://curl.haxx.se/bug/?i=4166
139+
[14] = https://curl.haxx.se/bug/?i=4157
140+
[15] = https://curl.haxx.se/bug/?i=3780
141+
[16] = https://curl.haxx.se/bug/?i=4183
142+
[17] = https://curl.haxx.se/bug/?i=4182
143+
[18] = https://curl.haxx.se/bug/?i=3992
144+
[19] = https://curl.haxx.se/bug/?i=4176
145+
[20] = https://curl.haxx.se/bug/?i=4165
146+
[21] = https://curl.haxx.se/bug/?i=4174
147+
[22] = https://curl.haxx.se/bug/?i=3701
148+
[23] = https://curl.haxx.se/bug/?i=4167
149+
[24] = https://curl.haxx.se/bug/?i=4172
150+
[25] = https://curl.haxx.se/bug/?i=4169
151+
[26] = https://curl.haxx.se/bug/?i=4136
152+
[27] = https://curl.haxx.se/bug/?i=3653
153+
[28] = https://curl.haxx.se/bug/?i=4163
154+
[29] = https://curl.haxx.se/bug/?i=4191
155+
[30] = https://curl.haxx.se/bug/?i=4192
156+
[31] = https://curl.haxx.se/bug/?i=4201
157+
[32] = https://curl.haxx.se/bug/?i=4199
158+
[33] = https://curl.haxx.se/bug/?i=4197
159+
[34] = https://curl.haxx.se/bug/?i=4198
160+
[35] = https://curl.haxx.se/bug/?i=3794
161+
[36] = https://curl.haxx.se/bug/?i=3794
162+
[37] = https://curl.haxx.se/bug/?i=4213
163+
[38] = https://curl.haxx.se/bug/?i=4216
164+
[39] = https://curl.haxx.se/bug/?i=4187
165+
[40] = https://curl.haxx.se/bug/?i=4221
166+
[41] = https://curl.haxx.se/bug/?i=3848
167+
[42] = https://curl.haxx.se/bug/?i=4223
168+
[43] = https://curl.haxx.se/bug/?i=4227
169+
[44] = https://curl.haxx.se/bug/?i=4228
170+
[45] = https://curl.haxx.se/bug/?i=4188
171+
[46] = https://curl.haxx.se/bug/?i=4258
172+
[47] = https://curl.haxx.se/bug/?i=4254
173+
[48] = https://curl.haxx.se/bug/?i=4248
174+
[49] = https://curl.haxx.se/bug/?i=4245
175+
[50] = https://curl.haxx.se/bug/?i=4244
176+
[51] = https://curl.haxx.se/bug/?i=4241
177+
[52] = https://curl.haxx.se/bug/?i=4230
178+
[53] = https://curl.haxx.se/bug/?i=4235
179+
[54] = https://curl.haxx.se/bug/?i=4273
180+
[55] = https://curl.haxx.se/bug/?i=4250
181+
[56] = https://curl.haxx.se/bug/?i=4267
182+
[57] = https://curl.haxx.se/bug/?i=4290
183+
[58] = https://curl.haxx.se/bug/?i=4289
184+
[59] = https://curl.haxx.se/bug/?i=4287
185+
[60] = https://curl.haxx.se/bug/?i=4286
186+
[61] = https://curl.haxx.se/bug/?i=4283
187+
[62] = https://curl.haxx.se/bug/?i=4279
188+
[63] = https://curl.haxx.se/bug/?i=4302
189+
[64] = https://curl.haxx.se/docs/CVE-2019-5481.html
190+
[65] = https://curl.haxx.se/docs/CVE-2019-5482.html
191+
[66] = https://curl.haxx.se/bug/?i=4307
192+
[67] = https://curl.haxx.se/bug/?i=4299
193+
[68] = https://curl.haxx.se/bug/?i=4304
194+
[69] = https://curl.haxx.se/bug/?i=4315

vendor/curl/include/curl/curl.h

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef __CURL_CURL_H
2-
#define __CURL_CURL_H
1+
#ifndef CURLINC_CURL_H
2+
#define CURLINC_CURL_H
33
/***************************************************************************
44
* _ _ ____ _
55
* Project ___| | | | _ \| |
@@ -284,10 +284,7 @@ typedef enum {
284284
#define CURLFINFOFLAG_KNOWN_SIZE (1<<6)
285285
#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7)
286286

287-
/* Content of this structure depends on information which is known and is
288-
achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man
289-
page for callbacks returning this structure -- some fields are mandatory,
290-
some others are optional. The FLAG field has special meaning. */
287+
/* Information about a single file, used when doing FTP wildcard matching */
291288
struct curl_fileinfo {
292289
char *filename;
293290
curlfiletype filetype;
@@ -603,6 +600,8 @@ typedef enum {
603600
*/
604601
CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from
605602
inside a callback */
603+
CURLE_AUTH_ERROR, /* 94 - an authentication function returned an
604+
error */
606605
CURL_LAST /* never use! */
607606
} CURLcode;
608607

@@ -886,7 +885,7 @@ typedef enum {
886885

887886
/* CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option */
888887
#define CURLALTSVC_IMMEDIATELY (1<<0)
889-
#define CURLALTSVC_ALTUSED (1<<1)
888+
890889
#define CURLALTSVC_READONLYFILE (1<<2)
891890
#define CURLALTSVC_H1 (1<<3)
892891
#define CURLALTSVC_H2 (1<<4)
@@ -1925,6 +1924,9 @@ typedef enum {
19251924
/* maximum age of a connection to consider it for reuse (in seconds) */
19261925
CINIT(MAXAGE_CONN, LONG, 288),
19271926

1927+
/* SASL authorisation identity */
1928+
CINIT(SASL_AUTHZID, STRINGPOINT, 289),
1929+
19281930
CURLOPT_LASTENTRY /* the last unused */
19291931
} CURLoption;
19301932

@@ -1978,7 +1980,8 @@ enum {
19781980
CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */
19791981
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1
19801982
Upgrade */
1981-
1983+
CURL_HTTP_VERSION_3 = 30, /* Makes use of explicit HTTP/3 without fallback.
1984+
Use CURLOPT_ALTSVC to enable HTTP/3 upgrade */
19821985
CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
19831986
};
19841987

@@ -2614,8 +2617,9 @@ typedef enum {
26142617
CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54,
26152618
CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55,
26162619
CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56,
2620+
CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57,
26172621

2618-
CURLINFO_LASTONE = 56
2622+
CURLINFO_LASTONE = 57
26192623
} CURLINFO;
26202624

26212625
/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
@@ -2714,6 +2718,7 @@ typedef enum {
27142718
CURLVERSION_THIRD,
27152719
CURLVERSION_FOURTH,
27162720
CURLVERSION_FIFTH,
2721+
CURLVERSION_SIXTH,
27172722
CURLVERSION_LAST /* never actually use this */
27182723
} CURLversion;
27192724

@@ -2722,7 +2727,7 @@ typedef enum {
27222727
meant to be a built-in version number for what kind of struct the caller
27232728
expects. If the struct ever changes, we redefine the NOW to another enum
27242729
from above. */
2725-
#define CURLVERSION_NOW CURLVERSION_FIFTH
2730+
#define CURLVERSION_NOW CURLVERSION_SIXTH
27262731

27272732
typedef struct {
27282733
CURLversion age; /* age of the returned struct */
@@ -2751,11 +2756,16 @@ typedef struct {
27512756
const char *libssh_version; /* human readable string */
27522757

27532758
/* These fields were added in CURLVERSION_FIFTH */
2754-
27552759
unsigned int brotli_ver_num; /* Numeric Brotli version
27562760
(MAJOR << 24) | (MINOR << 12) | PATCH */
27572761
const char *brotli_version; /* human readable string. */
27582762

2763+
/* These fields were added in CURLVERSION_SIXTH */
2764+
unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
2765+
(MAJOR << 16) | (MINOR << 8) | PATCH */
2766+
const char *nghttp2_version; /* human readable string. */
2767+
const char *quic_version; /* human readable quic (+ HTTP/3) library +
2768+
version or NULL */
27592769
} curl_version_info_data;
27602770

27612771
#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */
@@ -2788,6 +2798,7 @@ typedef struct {
27882798
#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */
27892799
#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */
27902800
#define CURL_VERSION_ALTSVC (1<<24) /* Alt-Svc handling built-in */
2801+
#define CURL_VERSION_HTTP3 (1<<25) /* HTTP3 support built-in */
27912802

27922803
/*
27932804
* NAME curl_version_info()
@@ -2868,4 +2879,4 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
28682879
#endif /* __STDC__ >= 1 */
28692880
#endif /* gcc >= 4.3 && !__cplusplus */
28702881

2871-
#endif /* __CURL_CURL_H */
2882+
#endif /* CURLINC_CURL_H */

vendor/curl/include/curl/curlver.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef __CURL_CURLVER_H
2-
#define __CURL_CURLVER_H
1+
#ifndef CURLINC_CURLVER_H
2+
#define CURLINC_CURLVER_H
33
/***************************************************************************
44
* _ _ ____ _
55
* Project ___| | | | _ \| |
@@ -30,13 +30,13 @@
3030

3131
/* This is the version number of the libcurl package from which this header
3232
file origins: */
33-
#define LIBCURL_VERSION "7.65.3"
33+
#define LIBCURL_VERSION "7.66.0"
3434

3535
/* The numeric version number is also available "in parts" by using these
3636
defines: */
3737
#define LIBCURL_VERSION_MAJOR 7
38-
#define LIBCURL_VERSION_MINOR 65
39-
#define LIBCURL_VERSION_PATCH 3
38+
#define LIBCURL_VERSION_MINOR 66
39+
#define LIBCURL_VERSION_PATCH 0
4040

4141
/* This is the numeric version of the libcurl version number, meant for easier
4242
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -57,7 +57,7 @@
5757
CURL_VERSION_BITS() macro since curl's own configure script greps for it
5858
and needs it to contain the full number.
5959
*/
60-
#define LIBCURL_VERSION_NUM 0x074103
60+
#define LIBCURL_VERSION_NUM 0x074200
6161

6262
/*
6363
* This is the date and time when the full source package was created. The
@@ -68,10 +68,10 @@
6868
*
6969
* "2007-11-23"
7070
*/
71-
#define LIBCURL_TIMESTAMP "2019-07-19"
71+
#define LIBCURL_TIMESTAMP "2019-09-11"
7272

7373
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
7474
#define CURL_AT_LEAST_VERSION(x,y,z) \
7575
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
7676

77-
#endif /* __CURL_CURLVER_H */
77+
#endif /* CURLINC_CURLVER_H */

vendor/curl/include/curl/easy.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
#ifndef __CURL_EASY_H
2-
#define __CURL_EASY_H
1+
#ifndef CURLINC_EASY_H
2+
#define CURLINC_EASY_H
33
/***************************************************************************
44
* _ _ ____ _
55
* Project ___| | | | _ \| |
66
* / __| | | | |_) | |
77
* | (__| |_| | _ <| |___
88
* \___|\___/|_| \_\_____|
99
*
10-
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
10+
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
1111
*
1212
* This software is licensed as described in the file COPYING, which
1313
* you should have received as part of this distribution. The terms

0 commit comments

Comments
 (0)