1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
|
curl and libcurl 7.77.0
Public curl releases: 200
Command line options: 242
curl_easy_setopt() options: 290
Public functions in libcurl: 85
Contributors: 2404
This release includes the following changes:
o configure: make the TLS library choice(s) explicit [3]
o curl: ignore options asking for SSLv2 or SSLv3 [10]
o hsts: enable by default [8]
o SSL: support in-memory CA certs for some backends [85]
o vtls: refuse setting any SSL version [9]
This release includes the following bugfixes:
o build: fix compilation for Windows UWP platform [82]
o c-hyper: don't write to set.writeheader if null [67]
o c-hyper: fix handling of zero-byte chunk from hyper [39]
o c-hyper: handle body on HYPER_TASK_EMPTY [104]
o checksrc: complain on == NULL or != 0 checks in conditions [20]
o CI/cirrus: add shared and static Windows release builds [102]
o cmake: check for getppid and utimes [87]
o cmake: make libcurl output filename configurable [41]
o config: remove now-unused macros [107]
o configure: if asked for, fail if ldap is not found [109]
o configure: provide --with-openssl, deprecate --with-ssl [15]
o conn: add 'attach' to protocol handler, make libssh2 use it [119]
o connect: use CURL_SA_FAMILY_T for portability [34]
o ConnectionExists: respect requests for h1 connections better
o cookie: CURLOPT_COOKIEFILE set to NULL switches off cookies [1]
o curl-wolfssl.m4: without custom include path, assume /usr/include [116]
o Curl_http_header: check for colon when matching Persistent-Auth [51]
o Curl_http_input_auth: require valid separator after negotiation type [52]
o Curl_input_digest: require space after Digest [50]
o curl_mprintf.3: add description [73]
o curl_setup: provide the shutdown flags wider [33]
o curl_url_set.3: add memory management information [38]
o CURLcode: add CURLE_SSL_CLIENTCERT [47]
o CURLOPT_CAPATH.3: defaults to a path, not NULL [103]
o CURLOPT_POSTFIELDS.3: clarify how it gets the size of the data [40]
o data_pending: check only SECONDARY socket for FTP(S) transfers [117]
o docs: camelcase it like GitHub everywhere [62]
o docs: cookies from HTTP headers need domain set [121]
o docs: fix typo in fail-with-body doc [63]
o docs: improve INTERNALS.md regarding getsock cb [105]
o docs: replace dots with dashes in markdown enums [101]
o easy: ignore sigpipe in curl_easy_send [69]
o FILEFORMAT: mention sectransp as a feature [89]
o GIT-INFO: suggest using autoreconf instead of buildconf [96]
o github: add a workflow with libssh2 on macOS using cmake [81]
o github: inhibit deprecated declarations for clang on macOS [118]
o GnuTLS: don't allow TLS 1.3 for versions that don't support it [77]
o gnutls: make setting only the MAX TLS allowed version work [83]
o gskit: fix CURL_DISABLE_PROXY build [57]
o gskit: fix undefined reference to 'conn' [58]
o hostip.h: remove declaration of unimplemented function [108]
o hostip: remove the debug code for LocalHost [113]
o http2: call the handle-closed function correctly on closed stream [37]
o http2: fix a resource leak in push_promise() [54]
o http2: fix resource leaks in set_transfer_url() [55]
o http2: make sure pause is done on HTTP [120]
o http2: move the stream error field to the per-transfer storage [36]
o http2: skip immediate parsing of payload following protocol switch [90]
o http2: use nghttp2_session_upgrade2 instead of nghttp2_session_upgrade [91]
o HTTP3.md: fix nghttp2's HTTP/3 server port [21]
o HTTP3.md: make the ngtcp2 build use the quictls fork [98]
o http: deal with partial CONNECT sends [97]
o http: fix the check for 'Authorization' with Bearer [53]
o http: limit the initial send amount to used upload buffer size [99]
o http: reset the header buffer when sending the request [61]
o http: use offsets inst of integer literals for header parsing [95]
o INSTALL: add IBM i specific quirks [75]
o krb5/name_to_level: replace checkprefix with curl_strequal [49]
o krb5: don't use 'static' to store PBSZ size response [23]
o krb5: remove the unused 'overhead' function [35]
o lib1564.c: enable last wakeup test part on Windows [26]
o lib: fix 0-length Curl_client_write calls [60]
o lib: fix some misuse of curlx_convert_UTF8_to_tchar [64]
o libcurl-security.3: be careful of setuid [66]
o libcurl-security.3: don't try to filter IPv4 hosts based on the URL [71]
o libcurl.3: mention the URL API [76]
o libssh2: fix Value stored to 'sshp' is never read [13]
o libssh2: ignore timeout during disconnect [45]
o libssh: fix "empty expression statement has no effect" warnings [7]
o libtest: remove lib530.c [88]
o m4: add security frameworks on Mac when compiling rustls [31]
o multi: don't close connection HTTP_1_1_REQUIRED
o multi: fix slow write/upload performance on Windows [27]
o multi: reduce Win32 API calls to improve performance [28]
o ngtcp2: fix the cb_acked_stream_data_offset proto [46]
o NSS: add ciphers to map [30]
o nss_set_blocking: avoid static for sock_opt [72]
o ntlm: precaution against super huge type2 offsets [65]
o openldap: protect SSL-specific code with proper #ifdef [12]
o openldap: replace ldap_ prefix on private functions [84]
o openssl: fix build error with OpenSSL < 1.0.2 [4]
o openssl: remove unneeded cast for CertOpenSystemStore() [93]
o os400: additional support for options metadata [24]
o progress: fix scan-build-11 warnings [92]
o progress: reset limit_size variables at transfer start [114]
o progress: when possible, calculate transfer speeds with microseconds [48]
o README.md: delete Codacy UTM parameters [5]
o Revert "Revert 'multi: implement wait using winsock events'" [26]
o rustls: only return CURLE_AGAIN when TLS session is fully drained [2]
o rustls: use ALPN [56]
o sasl: use 'unsigned short' to store mechanism [112]
o schannel: Disable auto credentials; add an option to enable it [18]
o schannel: Support strong crypto option [44]
o sectransp: allow cipher name to be specified [29]
o sigpipe: ignore SIGPIPE when using wolfSSL as well [70]
o sockfilt: avoid getting stuck waiting for writable socket [80]
o sockfilt: fix invalid increment of handles index variable nfd [79]
o sws: #ifdef S_IFSOCK use [32]
o sws: allow HTTP requests up to 2MB in size [100]
o test server: take care of siginterrupt() deprecation [25]
o tests/disable-scan.pl: also scan all m4 files [17]
o tests: ignore case of chunked hex numbers in tests [86]
o tls: add USE_HTTP2 define [59]
o tool_getparam: handle failure of curlx_convert_tchar_to_UTF8() [78]
o tool_getparam: replace (in-place) '%20' by '+' according to RFC1866 [14]
o tool_operate: don't discard failed parallel transfer result [16]
o tool_writeout: fix the HTTP_CODE json output [11]
o travis: disable the failing libssh build [94]
o URL-SYNTAX: update IDNA section for WHATWG spec changes [74]
o urlapi: "normalize" numerical IPv4 host names [6]
o vauth: factor base64 conversions out of authentication procedures [22]
o version: add gsasl_version to curl_version_info_data [43]
o version: add OpenLDAP version in the output [110]
o vtls: deduplicate some DISABLE_PROXY ifdefs [19]
o vtls: reset ssl use flag upon negotiation failure [42]
o wolfssl: handle SSL_write() returns 0 for error [68]
o wolfssl: remove SSLv3 support leftovers [115]
This release includes the following known bugs:
o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
This release would not have looked like this without help, code, reports and
advice from friends like these:
3eka on github, Andrew Barnert, Ayushman Singh Chauhan, Benjamin Riefenstahl,
Blake Burkhart, Calvin Buckley, Cameron Cawley, Dan Fandrich,
Daniel Carpenter, Daniel Gustafsson, Daniel Stenberg, David Cook,
Denis Goleshchikhin, Dmitry Karpov, Dmitry Kostjuchenko, ebejan on github,
Emil Engler, Georeth Zhou, Gergely Nagy, Gilles Vollant, Harry Sintonen,
Howard Chu, Ikko Ashimine, Illarion Taev, Jacob Hoffman-Andrews,
Jakub Zakrzewski, Javier Blazquez, J. Bromley, Jeroen Ooms, Joel Depooter,
Joel Jakobsson, Johann150 on github, Jon Rumsey, Kamil Dudka, Kevin Burke,
Kevin R. Bulgrien, Lucas Servén Marín, MAntoniak on github, Marc Aldorasi,
Marcel Raad, Marc Hörsken, Martin Dorey, Martin Halle, Max Dymond,
Michael Kolechkin, Michael O'Farrell, Michał Antoniak, Michal Rus,
Morten Minde Neergaard, Patrick Monnerat, Peng-Yu Chen, Pontus Lundkvist,
Ralph Langendam, Ray Satiro, rcombs on github, Rich FitzJohn,
sergio-nsk on github, Stefan Karpinski, Timo Lange, Timothy Gu,
tmkk on github, Tobias Gabriel, Tommy Odom, Travis Burtrum on github,
Tuomas Siipola, ustcqidi on github, Victor Vieux, Viktor Szakats,
Wes Hinsley, Ymir1711 on github, Yusuke Nakamura,
(71 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=6889
[2] = https://curl.se/bug/?i=6894
[3] = https://curl.se/bug/?i=6897
[4] = https://curl.se/bug/?i=6920
[5] = https://curl.se/bug/?i=6919
[6] = https://curl.se/bug/?i=6863
[7] = https://curl.se/bug/?i=6847
[8] = https://curl.se/bug/?i=6700
[9] = https://curl.se/bug/?i=6773
[10] = https://curl.se/bug/?i=6772
[11] = https://curl.se/bug/?i=6905
[12] = https://curl.se/bug/?i=6901
[13] = https://curl.se/bug/?i=6900
[14] = https://curl.se/bug/?i=6895
[15] = https://curl.se/bug/?i=6887
[16] = https://curl.se/bug/?i=6921
[17] = https://curl.se/bug/?i=1165
[18] = https://curl.se/bug/?i=2262
[19] = https://curl.se/bug/?i=6660
[20] = https://curl.se/bug/?i=6912
[21] = https://curl.se/bug/?i=6964
[22] = https://curl.se/bug/?i=6654
[23] = https://curl.se/bug/?i=6963
[24] = https://curl.se/bug/?i=6574
[25] = https://curl.se/bug/?i=6529
[26] = https://curl.se/bug/?i=6245
[27] = https://curl.se/bug/?i=6146
[28] = https://curl.se/bug/?i=6146
[29] = https://curl.se/bug/?i=6464
[30] = https://curl.se/bug/?i=6670
[31] = https://curl.se/bug/?i=6955
[32] = https://curl.se/mail/lib-2021-04/0074.html
[33] = https://curl.se/mail/lib-2021-04/0073.html
[34] = https://curl.se/mail/lib-2021-04/0071.html
[35] = https://curl.se/bug/?i=6947
[36] = https://curl.se/bug/?i=6910
[37] = https://curl.se/bug/?i=6862
[38] = https://curl.se/bug/?i=6953
[39] = https://curl.se/bug/?i=6951
[40] = https://curl.se/bug/?i=6943
[41] = https://curl.se/bug/?i=6933
[42] = https://curl.se/bug/?i=6934
[43] = https://curl.se/bug/?i=6843
[44] = https://curl.se/bug/?i=6734
[45] = https://curl.se/bug/?i=6990
[46] = https://curl.se/mail/lib-2021-05/0019.html
[47] = https://curl.se/bug/?i=6721
[48] = https://curl.se/bug/?i=7017
[49] = https://curl.se/bug/?i=6993
[50] = https://curl.se/bug/?i=6993
[51] = https://curl.se/bug/?i=6993
[52] = https://curl.se/bug/?i=6993
[53] = https://curl.se/bug/?i=6988
[54] = https://curl.se/bug/?i=6986
[55] = https://curl.se/bug/?i=6986
[56] = https://curl.se/bug/?i=6960
[57] = https://curl.se/bug/?i=6981
[58] = https://curl.se/bug/?i=6980
[59] = https://curl.se/bug/?i=6959
[60] = https://curl.se/bug/?i=6954
[61] = https://curl.se/bug/?i=7018
[62] = https://curl.se/bug/?i=6979
[63] = https://curl.se/bug/?i=6977
[64] = https://github.com/curl/curl/pull/6602#issuecomment-825236763
[65] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33720
[66] = https://curl.se/bug/?i=6970
[67] = https://curl.se/bug/?i=6619
[68] = https://curl.se/bug/?i=6967
[69] = https://curl.se/bug/?i=6965
[70] = https://curl.se/bug/?i=6966
[71] = https://curl.se/bug/?i=6942
[72] = https://curl.se/bug/?i=6945
[73] = https://curl.se/bug/?i=7010
[74] = https://curl.se/bug/?i=7026
[75] = https://curl.se/bug/?i=6830
[76] = https://curl.se/bug/?i=7009
[77] = https://curl.se/bug/?i=7014
[78] = https://curl.se/bug/?i=7023
[79] = https://curl.se/bug/?i=6992
[80] = https://curl.se/bug/?i=6992
[81] = https://curl.se/bug/?i=7047
[82] = https://curl.se/bug/?i=7006
[83] = https://curl.se/bug/?i=6998
[84] = https://curl.se/bug/?i=7004
[85] = https://curl.se/bug/?i=6662
[86] = https://curl.se/bug/?i=6987
[87] = https://curl.se/bug/?i=6997
[88] = https://curl.se/bug/?i=6999
[89] = https://curl.se/bug/?i=7001
[90] = https://curl.se/bug/?i=7036
[91] = https://curl.se/bug/?i=7041
[92] = https://curl.se/mail/lib-2021-05/0022.html
[93] = https://curl.se/bug/?i=7025
[94] = https://curl.se/bug/?i=7011
[95] = https://curl.se/bug/?i=7032
[96] = https://curl.se/bug/?i=7033
[97] = https://curl.se/bug/?i=6950
[98] = https://curl.se/bug/?i=7031
[99] = https://curl.se/bug/?i=7022
[100] = https://curl.se/bug/?i=7075
[101] = https://curl.se/bug/?i=7093
[102] = https://curl.se/bug/?i=6991
[103] = https://curl.se/bug/?i=7062
[104] = https://curl.se/bug/?i=7064
[105] = https://curl.se/bug/?i=7092
[107] = https://curl.se/bug/?i=7094
[108] = https://curl.se/bug/?i=7094
[109] = https://curl.se/bug/?i=7053
[110] = https://curl.se/bug/?i=7054
[112] = https://curl.se/bug/?i=7045
[113] = https://curl.se/bug/?i=7044
[114] = https://curl.se/bug/?i=7042
[115] = https://curl.se/bug/?i=7088
[116] = https://curl.se/bug/?i=7085
[117] = https://curl.se/bug/?i=7068
[118] = https://curl.se/bug/?i=7081
[119] = https://curl.se/bug/?i=6898
[120] = https://curl.se/bug/?i=7079
[121] = https://curl.se/bug/?i=6723
|