summaryrefslogtreecommitdiff
path: root/RELEASE-NOTES
blob: f3bc0f8b2e8bd03b42d49f80247d8b1fd585ceb0 (plain)
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
curl and libcurl 7.76.0

 Public curl releases:         198
 Command line options:         240
 curl_easy_setopt() options:   288
 Public functions in libcurl:  85
 Contributors:                 2348

This release includes the following changes:

 o cookies: Support multiple -b parameters [69]
 o curl: add --fail-with-body [17]
 o doh: add options to disable ssl verification [5]
 o http: add support to read and store the referrer header [30]
 o sasl: support SCRAM-SHA-1 and SCRAM-SHA-256 via libgsasl [4]
 o vtls: initial implementation of rustls backend [3]

This release includes the following bugfixes:

 o asyn-ares: use consistent resolve error message [37]
 o BUG-BOUNTY: removed the cooperation mention
 o build: delete unused feature guards [51]
 o build: fix --disable-dateparse [1]
 o build: fix --disable-http-auth
 o build: remove all traces of USE_BLOCKING_SOCKETS [70]
 o c-hyper: Remove superfluous pointer check [56]
 o c-hyper: support automatic content-encoding [74]
 o CI/azure: replace python-impacket with python3-impacket [61]
 o ci: stop building on freebsd-12-1 [38]
 o cmake: fix import library name for non-MS compiler on Windows [10]
 o cmake: use CMAKE_INSTALL_INCLUDEDIR indirection [49]
 o config: fix building SMB with configure using Win32 Crypto [91]
 o config: fix detection of restricted Windows App environment
 o configure: fail if --with-quiche is used and quiche isn't found [48]
 o configure: make hyper opt-in, and fail if missing [53]
 o configure: only add OpenSSL paths if they are defined [68]
 o configure: provide Largefile feature for curl-config [79]
 o cookies: Fix potential NULL pointer deref with PSL [66]
 o curl: set CURLOPT_NEW_FILE_PERMS if requested [65]
 o curl_multibyte: always return a heap-allocated copy of string [29]
 o curl_multibyte: fall back to local code page stat/access on Windows [8]
 o curl_url_set.3: mention CURLU_PATH_AS_IS [13]
 o CURLOPT_QUOTE.3: clarify that libcurl doesn't parse what's sent [16]
 o docs/HTTP2: remove the outdated remark about multiplexing for the tool
 o docs/Makefile.inc: format to be update-friendly [11]
 o docs: add CURLOPT_CURLU to 'See also' in curl_url_ functions [52]
 o docs: add missing Arg tag to --stderr [58]
 o docs: fix FILE example url in --metalink documentation [19]
 o doh: Fix sharing user's resolve list with DOH handles [46]
 o doh: Inherit CURLOPT_STDERR from user's easy handle [60]
 o dynbuf: bump the max HTTP request to 1MB [39]
 o file: Support unicode urls on windows [9]
 o ftp: add 'list_only' to the transfer state struct [35]
 o ftp: add 'prefer_ascii' to the transfer state struct [36]
 o FTP: allow SIZE to fail when doing (resumed) upload [78]
 o ftp: avoid SIZE when asking for a TYPE A file [23]
 o ftp: fix Codacy/cppcheck warning about null pointer arithmetic [34]
 o ftp: fix memory leak in ftp_done [96]
 o ftp: never set data->set.ftp_append outside setopt [14]
 o gen.pl: quote "bare" minuses in the nroff curl.1 [92]
 o github: add torture-ftp for FTP-only torture testing [94]
 o gnutls: assume nettle crypto support [33]
 o gskit: correct the gskit_send() prototype [21]
 o hostip: fix build with sync resolver [20]
 o hostip: fix crash in sync resolver builds that use DOH [12]
 o hsts: remove unused defines [93]
 o http2: don't set KEEP_SEND when there's no more data to be sent [90]
 o http2: fail if connection terminated without END_STREAM [97]
 o http: do not add a referrer header with empty value [44]
 o http: remove superfluous NULL assign [75]
 o http: use credentials from transfer, not connection [25]
 o ldap: use correct memory free function [63]
 o lib1536: check ptr against NULL before dereferencing it [83]
 o lib1537: check ptr against NULL before dereferencing it [84]
 o lib: remove 'conn->data' completely [45]
 o memdebug: close debug logfile explicitly on exit [28]
 o mingw: enable using strcasecmp() [50]
 o multi: do once-per-transfer inits in before_perform in DID state [54]
 o multi: rename the multi transfer states [43]
 o multi: update pending list when removing handle [82]
 o ngtcp2: adapt to the new recv_datagram callback
 o ngtcp2: clarify calculation precedence [27]
 o ngtcp2: Fix build error due to change in ngtcp2_addr_init [81]
 o openssl: adapt to v3's new const for a few API calls [86]
 o openssl: remove get_ssl_version_txt in favor of SSL_get_version [67]
 o OS400: update for CURLOPT_AWS_SIGV4 [2]
 o parse_proxy: fix a memory leak in the OOM path [41]
 o pathhelp.pm: fix use of pwd -L in Msys environment
 o projects: Update VS projects for OpenSSL 1.1.x [59]
 o quiche: fix build error: use 'int' for port number
 o quiche: fix crash when failing to connect [87]
 o retry-all-errors.d: Explain curl errors versus HTTP response errors [72]
 o retry.d: Clarify transient 5xx HTTP response codes [71]
 o runtests.pl: add %TESTNUMBER variable to make copying tests more convenient
 o runtests.pl: add a -P option to specify an external proxy
 o runtests.pl: kill processes locking test log files [62]
 o rustls: allocate a buffer for TLS data. [88]
 o rustls: support CURLOPT_SSL_VERIFYPEER [55]
 o setopt: error on CURLOPT_HTTP09_ALLOWED set true with Hyper [77]
 o test1188: change error to check for: --fail HTTP status [26]
 o test220/314: adjust to run with Hyper
 o test304: header CRLF cleanup to work with Hyper
 o test306: make it not run with Hyper
 o tests: disable .curlrc in more environments [7]
 o time: enable 64-bit time_t in supported mingw environments [24]
 o tool_help: add missing argument for --create-file-mode [18]
 o tool_help: Increase space between option and description [64]
 o tool_operate: bail if set CURLOPT_HTTP09_ALLOWED returns error [76]
 o travis: add a rustls build [89]
 o travis: bump wolfssl to 4.7.0
 o travis: only build wolfssl when needed [85]
 o travis: split "torture" into a separate "events" build [95]
 o travis: switch ngtcp2 build over to quictls [73]
 o travis: use ubuntu nghttp2 package instead of build our own [80]
 o url.c: use consistent error message for failed resolve
 o url: fix memory leak if OOM in the HSTS handling [32]
 o url: fix possible use-after-free in default protocol [42]
 o urldata: don't touch data->set.httpversion at run-time [6]
 o urldata: fix build without HTTP and MQTT [22]
 o urldata: make 'actions[]' use unsigned char instead of int [47]
 o urldata: remove the 'rtspversion' field [15]
 o urldata: remove the _ORIG suffix from string names [31]
 o version.d: Add missing features to the features list [57]
 o wolfssl: don't store a NULL sessionid [40]

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:

  Ádler Jonas Gross, Alejandro Colomar, Alex Xu, Amaury Denoyelle,
  arvids-kokins-bidstack on github, awesomenode on github, Benbuck Nason,
  Bodo Bergmann, Carl Zogheib, Dan Fandrich, Daniel Gustafsson,
  Daniel Stenberg, David Demelier, David Goerger, ebejan on github,
  Emil Engler, Fabian Keil, Firefox OS, Gisle Vanem, Gregor Jasny,
  Ikko Ashimine, Jack Boos Yu, Jacob Hoffman-Andrews, Jean-Philippe Menil,
  Joel Teichroeb, Johannes Lesr, Jon Rumsey, Jordan Brown, Joseph Chen,
  Jun-ya Kato, kokke on github, Lawrence Gripper, Manuj Bhatia, Marcel Raad,
  Marc Hörsken, Michael Hordijk, Ray Satiro, Robert Ronto, Sergei Nikulov,
  Simon Josefsson, Stephan Szabo, Viktor Szakats, Vincent Torri,
  Vladimir Varlamov, ZimCodes on github, ウさん
  (46 contributors)

References to bug reports and discussions on issues:

 [1] = https://curl.se/mail/lib-2021-02/0008.html
 [2] = https://curl.se/bug/?i=6560
 [3] = https://curl.se/bug/?i=6350
 [4] = https://curl.se/bug/?i=6372
 [5] = https://curl.se/bug/?i=4578
 [6] = https://curl.se/bug/?i=6585
 [7] = https://curl.se/bug/?i=6595
 [8] = https://curl.se/bug/?i=6514
 [9] = https://curl.se/bug/?i=6501
 [10] = https://curl.se/bug/?i=6225
 [11] = https://curl.se/bug/?i=6593
 [12] = https://curl.se/bug/?i=6603
 [13] = https://curl.se/mail/lib-2021-02/0046.html
 [14] = https://curl.se/bug/?i=6579
 [15] = https://curl.se/bug/?i=6581
 [16] = https://curl.se/bug/?i=6577
 [17] = https://curl.se/bug/?i=6449
 [18] = https://curl.se/bug/?i=6590
 [19] = https://curl.se/bug/?i=6573
 [20] = https://curl.se/bug/?i=6566
 [21] = https://curl.se/bug/?i=6569
 [22] = https://curl.se/bug/?i=6562
 [23] = https://curl.se/bug/?i=6564
 [24] = https://curl.se/bug/?i=6636
 [25] = https://curl.se/bug/?i=6542
 [26] = https://curl.se/bug/?i=6637
 [27] = https://curl.se/bug/?i=6576
 [28] = https://github.com/curl/curl/pull/6591#issuecomment-780396541
 [29] = https://curl.se/bug/?i=6602
 [30] = https://curl.se/bug/?i=6591
 [31] = https://curl.se/bug/?i=6624
 [32] = https://github.com/curl/curl/pull/6627#issuecomment-781626205
 [33] = https://curl.se/bug/?i=6625
 [34] = https://curl.se/bug/?i=6576
 [35] = https://curl.se/bug/?i=6578
 [36] = https://curl.se/bug/?i=6578
 [37] = https://curl.se/bug/?i=6626
 [38] = https://curl.se/bug/?i=6622
 [39] = https://curl.se/bug/?i=6681
 [40] = https://curl.se/bug/?i=6616
 [41] = https://github.com/curl/curl/pull/6591#issuecomment-780396541
 [42] = https://github.com/curl/curl/issues/6604#issuecomment-780138219
 [43] = https://curl.se/bug/?i=6612
 [44] = https://curl.se/bug/?i=6610
 [45] = https://curl.se/bug/?i=6608
 [46] = https://curl.se/bug/?i=6589
 [47] = https://curl.se/bug/?i=6648
 [48] = https://curl.se/bug/?i=6652
 [49] = https://curl.se/bug/?i=6440
 [50] = https://curl.se/bug/?i=6644
 [51] = https://curl.se/bug/?i=6645
 [52] = https://curl.se/bug/?i=6639
 [53] = https://curl.se/bug/?i=6598
 [54] = https://curl.se/bug/?i=6640
 [55] = https://curl.se/bug/?i=6719
 [56] = https://curl.se/bug/?i=6697
 [57] = https://curl.se/bug/?i=6677
 [58] = https://curl.se/bug/?i=6692
 [59] = https://curl.se/bug/?i=984
 [60] = https://github.com/curl/curl/issues/6605
 [61] = https://curl.se/bug/?i=6678
 [62] = https://curl.se/bug/?i=6179
 [63] = https://curl.se/bug/?i=6671
 [64] = https://curl.se/bug/?i=6674
 [65] = https://curl.se/bug/?i=6657
 [66] = https://curl.se/bug/?i=6731
 [67] = https://curl.se/bug/?i=6665
 [68] = https://curl.se/bug/?i=6730
 [69] = https://curl.se/bug/?i=6649
 [70] = https://curl.se/bug/?i=6655
 [71] = https://curl.se/bug/?i=6724
 [72] = https://curl.se/bug/?i=6712
 [73] = https://curl.se/bug/?i=6729
 [74] = https://curl.se/bug/?i=6727
 [75] = https://curl.se/bug/?i=6727
 [76] = https://curl.se/bug/?i=6727
 [77] = https://curl.se/bug/?i=6727
 [78] = https://curl.se/bug/?i=6715
 [79] = https://curl.se/bug/?i=6702
 [80] = https://curl.se/bug/?i=6751
 [81] = https://curl.se/bug/?i=6716
 [82] = https://curl.se/bug/?i=6713
 [83] = https://curl.se/bug/?i=6710
 [84] = https://curl.se/bug/?i=6707
 [85] = https://curl.se/bug/?i=6751
 [86] = https://curl.se/bug/?i=6703
 [87] = https://curl.se/bug/?i=6664
 [88] = https://curl.se/bug/?i=6742
 [89] = https://curl.se/bug/?i=6750
 [90] = https://curl.se/bug/?i=6747
 [91] = https://curl.se/bug/?i=6277
 [92] = https://curl.se/bug/?i=6698
 [93] = https://curl.se/bug/?i=6741
 [94] = https://curl.se/bug/?i=6728
 [95] = https://curl.se/bug/?i=6728
 [96] = https://curl.se/bug/?i=6737
 [97] = https://curl.se/bug/?i=6736