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
|
curl and libcurl 7.64.1
Public curl releases: 180
Command line options: 220
curl_easy_setopt() options: 265
Public functions in libcurl: 80
Contributors: 1875
This release includes the following changes:
o alt-svc: experiemental support added [74]
This release includes the following bugfixes:
o AppVeyor: add MinGW-w64 and classic Mingw builds [55]
o AppVeyor: switch VS 2015 builds to VS 2017 image [49]
o CURLU: fix NULL dereference when used over proxy [73]
o Curl_easy: remove req.maxfd - never used! [58]
o Curl_now: figure out windows version in win32_init: [11]
o Curl_resolv: fix a gcc -Werror=maybe-uninitialized warning [20]
o DoH: inherit some SSL options from user's easy handle [80]
o OpenSSL: add support for TLS ASYNC state [46]
o Secure Transport: no more "darwinssl" [56]
o cirrus: Added FreeBSD builds using Cirrus CI
o cleanup: make local functions static [5]
o cli tool: do not use mime.h private structures [27]
o cmdline-opts/proxytunnel.d: the option tunnnels all protocols [83]
o configure: add additional libraries to check for LDAP support [45]
o configure: remove the unused fdopen macro [40]
o configure: show features as well in the final summary [15]
o connection: never reuse CONNECT_ONLY connections [35]
o connection_check: restore original conn->data after the check [14]
o connection_check: set ->data to the transfer doing the check [3]
o cookie: Add support for cookie prefixes [29]
o cookies: dotless names can set cookies again [81]
o cookies: fix NULL dereference if flushing cookies with no CookieInfo set [47]
o curl.h: use __has_declspec_attribute for shared builds [52]
o curl: display --version features sorted alphabetically [51]
o curl: fix FreeBSD compiler warning in the --xattr code [2]
o curl: remove MANUAL from -M output [38]
o curl_easy_duphandle.3: clarify that a duped handle has no shares [64]
o curl_multi_remove_handle.3: use at any time, just not from within callbacks
o dns: release sharelock as soon as possible [1]
o docs: update max-redirs.d phrasing [59]
o easy: fix win32 init to work without CURL_GLOBAL_WIN32 [30]
o examples/10-at-a-time.c: improve readability and simplify
o examples/cacertinmem.c: use multiple certificates for loading CA-chain [54]
o examples/crawler: Fix the Accept-Encoding setting
o examples/ephiperfifo.c: various fixes [63]
o examples/externalsocket: add missing close socket calls [78]
o examples/http2-download: cleaned up
o examples/http2-serverpush: add some sensible error checks [31]
o examples/http2-upload: cleaned up
o examples/httpcustomheader: Value stored to 'res' is never read
o examples/postinmemory: Potential leak of memory pointed to by 'chunk.memory'
o examples/sftpuploadresume: Value stored to 'result' is never read
o examples: only include <curl/curl.h> [70]
o examples: remove recursive calls to curl_multi_socket_action [42]
o examples: remove superfluous null-pointer checks
o fnmatch: disable if FTP is disabled [25]
o gnutls: remove call to deprecated gnutls_compression_get_name [66]
o gopher: remove check for path == NULL [69]
o gssapi: fix deprecated header warnings [16]
o hostip: make create_hostcache_id avoid alloc + free [4]
o http2: multi_connchanged() moved from multi.c, only used for h2 [21]
o http2: verify :athority in push promise requests [37]
o http: make adding a blank header thread-safe [33]
o http: set state.infilesize when sending multipart formposts [57]
o mbedtls: make it build even if MBEDTLS_VERSION_C isn't set [24]
o mbedtls: release sessionid resources on error [28]
o memdebug: make debug-specific functions use curl_dbg_ prefix [82]
o mime: put the boundary buffer into the curl_mime struct [18]
o multi: call multi_done on connect timeouts, fixes CURLINFO_TOTAL_TIME [43]
o multi: remove verbose "Expire in" ... messages [23]
o multi: removed unused code for request retries [79]
o multi: support verbose conncache closure handle [72]
o pretransfer: don't strlen() POSTFIELDS set for GET requests [22]
o rand: Fix a mismatch between comments in source and header [32]
o runtests: detect "schannel" as an alias for "winssl" [50]
o schannel: be quiet - remove verbose output [19]
o schannel: close TLS before removing conn from cache [10]
o schannel: support CALG_ECDH_EPHEM algorithm [44]
o scripts/completion.pl: also generate fish completion file [67]
o singlesocket: fix the 'sincebefore' placement [36]
o source: fix two 'nread' may be used uninitialized warnings [68]
o ssh: fix Condition '!status' is always true [60]
o ssh: loop the state machine if not done and not blocking [71]
o strerror: make the strerror function use local buffers [48]
o system_win32: move win32_init here from easy.c [65]
o test578: make it read data from the correct test
o tests: Fixed XML validation errors in some test files
o tests: add stderr comparison to the test suite [26]
o tests: fix multiple may be used uninitialized warnings
o threaded-resolver: shutdown the resolver thread without error message [61]
o tool_operate: fix typecheck warning [9]
o transfer.c: do not compute length of undefined hex buffer
o travis: add build using gnutls [75]
o travis: add scan-build [13]
o travis: enable valgrind for the iconv tests [12]
o travis: use updated compiler versions: clang 7 and gcc 8 [77]
o unit1307: require FTP support [17]
o unit1651: survive curl_easy_init() fails
o url/idnconvert: remove scan for <= 32 ascii values [6]
o url: change conn shutdown order to ensure SOCKETFUNCTION callbacks [39]
o urlapi: reduce variable scope, remove unreachable 'break' [7]
o urldata: convert bools to bitfields and move to end [53]
o urldata: simplify bytecounters [62]
o urlglob: Argument with 'nonnull' attribute passed null
o version.c: silent scan-build even when librtmp is not enabled
o wolfssl: stop custom-adding curves [41]
o x509asn1: "Dereference of null pointer"
o x509asn1: cleanup and unify code layout [34]
o zsh.pl: escape ':' character [8]
o zsh.pl: update regex to better match curl -h output [8]
This release includes the following known bugs:
o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
This release would not have looked like this without help, code, reports and
advice from friends like these:
accountantM on github, Alessandro Ghedini, Andre Guibert de Bruet,
Arnaud Rebillout, Bernd Mueller, Björn Stenberg, buzo-ffm on github,
Chris Araman, d912e3 on github, Dan Fandrich, Daniel Gustafsson,
Daniel Lublin, Daniel Stenberg, David Garske, Don J Olmstead, Frank Gevaerts,
Gisle Vanem, James Brown, Jan Alexander Steffens, jnbr on github,
MAntoniak on github, Marcel Raad, Matt McClure, Michael Felt, Michael Schmid,
Michael Wallner, Michał Antoniak, Nick Zitzmann, Nicolas Grekas,
Patrick Monnerat, Paul Groke, Pavel Löbl, Ray Satiro, Renaud Allard,
Romain Geissler, Sara Golemon, Simon Legner, tholin on github, Volker Schmid,
wesinator on github,
(40 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
[1] = https://curl.haxx.se/bug/?i=3516
[2] = https://curl.haxx.se/bug/?i=3550
[3] = https://curl.haxx.se/bug/?i=3541
[4] = https://curl.haxx.se/bug/?i=3544
[5] = https://curl.haxx.se/bug/?i=3538
[6] = https://curl.haxx.se/bug/?i=3539
[7] = https://curl.haxx.se/bug/?i=3540
[8] = https://bugs.debian.org/921452
[9] = https://curl.haxx.se/bug/?i=3534
[10] = https://curl.haxx.se/bug/?i=3412
[11] = https://curl.haxx.se/bug/?i=3572
[12] = https://curl.haxx.se/bug/?i=3571
[13] = https://curl.haxx.se/bug/?i=3564
[14] = https://curl.haxx.se/bug/?i=3542
[15] = https://curl.haxx.se/bug/?i=3569
[16] = https://curl.haxx.se/bug/?i=3566
[17] = https://curl.haxx.se/bug/?i=3565
[18] = https://curl.haxx.se/bug/?i=3561
[19] = https://curl.haxx.se/bug/?i=3552
[20] = https://curl.haxx.se/bug/?i=3562
[21] = https://curl.haxx.se/bug/?i=3557
[22] = https://curl.haxx.se/bug/?i=3548
[23] = https://curl.haxx.se/mail/archive-2019-02/0013.html
[24] = https://curl.haxx.se/bug/?i=3553
[25] = https://curl.haxx.se/bug/?i=3551
[26] = https://curl.haxx.se/bug/?i=3536
[27] = https://curl.haxx.se/bug/?i=3532
[28] = https://curl.haxx.se/bug/?i=3574
[29] = https://curl.haxx.se/bug/?i=3554
[30] = https://curl.haxx.se/bug/?i=3313
[31] = https://curl.haxx.se/bug/?i=3580
[32] = https://curl.haxx.se/bug/?i=3584
[33] = https://curl.haxx.se/bug/?i=3578
[34] = https://curl.haxx.se/bug/?i=3582
[35] = https://curl.haxx.se/mail/lib-2019-02/0064.html
[36] = https://curl.haxx.se/bug/?i=3585
[37] = https://curl.haxx.se/bug/?i=3577
[38] = https://curl.haxx.se/bug/?i=3587
[39] = https://curl.haxx.se/mail/lib-2019-02/0101.html
[40] = https://curl.haxx.se/bug/?i=3600
[41] = https://curl.haxx.se/bug/?i=3599
[42] = https://curl.haxx.se/bug/?i=3537
[43] = https://curl.haxx.se/bug/?i=3602
[44] = https://curl.haxx.se/bug/?i=3608
[45] = https://curl.haxx.se/bug/?i=3595
[46] = https://curl.haxx.se/bug/?i=3591
[47] = https://curl.haxx.se/bug/?i=3613
[48] = https://curl.haxx.se/bug/?i=3612
[49] = https://curl.haxx.se/bug/?i=3606
[50] = https://curl.haxx.se/bug/?i=3609
[51] = https://curl.haxx.se/bug/?i=3611
[52] = https://curl.haxx.se/bug/?i=3616
[53] = https://curl.haxx.se/bug/?i=3610
[54] = https://curl.haxx.se/bug/?i=3421
[55] = https://curl.haxx.se/bug/?i=3623
[56] = https://curl.haxx.se/bug/?i=3619
[57] = https://curl.haxx.se/mail/archive-2019-02/0023.html
[58] = https://curl.haxx.se/bug/?i=3626
[59] = https://curl.haxx.se/bug/?i=3631
[60] = https://curl.haxx.se/bug/?i=3628
[61] = https://curl.haxx.se/bug/?i=3629
[62] = https://curl.haxx.se/bug/?i=3627
[63] = https://curl.haxx.se/bug/?i=3632
[64] = https://curl.haxx.se/bug/?i=3592
[65] = https://curl.haxx.se/bug/?i=3625
[66] = https://curl.haxx.se/bug/?i=3636
[67] = https://curl.haxx.se/bug/?i=3545
[68] = https://curl.haxx.se/bug/?i=3546
[69] = https://curl.haxx.se/bug/?i=3617
[70] = https://curl.haxx.se/bug/?i=3645
[71] = https://curl.haxx.se/bug/?i=3506
[72] = https://curl.haxx.se/bug/?i=3618
[73] = https://curl.haxx.se/bug/?i=3641
[74] = https://curl.haxx.se/bug/?i=3498
[76] = https://curl.haxx.se/bug/?i=3637
[77] = https://curl.haxx.se/bug/?i=3670
[78] = https://curl.haxx.se/bug/?i=3663
[79] = https://curl.haxx.se/bug/?i=3666
[80] = https://curl.haxx.se/bug/?i=3660
[81] = https://curl.haxx.se/bug/?i=3649
[82] = https://curl.haxx.se/bug/?i=3656
[83] = https://curl.haxx.se/bug/?i=3658
|