RELEASE-NOTES 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. curl and libcurl 7.66.0
  2. Public curl releases: 185
  3. Command line options: 225
  4. curl_easy_setopt() options: 269
  5. Public functions in libcurl: 81
  6. Contributors: 1991
  7. This release includes the following changes:
  8. o CURLINFO_RETRY_AFTER: parse the Retry-After header value [35]
  9. o HTTP3: initial (experimental still not working) support [5]
  10. o curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool [27]
  11. o curl: support parallel transfers with -Z [4]
  12. o curl_multi_poll: a sister to curl_multi_wait() that waits more [28]
  13. o sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID [27]
  14. This release includes the following bugfixes:
  15. o CVE-2019-5481: FTP-KRB double-free [64]
  16. o CVE-2019-5482: TFTP small blocksize heap buffer overflow [65]
  17. o CI: remove duplicate configure flag for LGTM.com
  18. o CMake: remove needless newlines at end of gss variables
  19. o CMake: use platform dependent name for dlopen() library [62]
  20. o CURLINFO docs: mention that in redirects times are added [55]
  21. o CURLOPT_ALTSVC.3: use a "" file name to not load from a file
  22. o CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
  23. o CURLOPT_HEADERFUNCTION.3: clarify [54]
  24. o CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly [33]
  25. o CURLOPT_READFUNCTION.3: provide inline example
  26. o CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2 [51]
  27. o Curl_addr2string: take an addrlen argument too [61]
  28. o Curl_fillreadbuffer: avoid double-free trailer buf on error [66]
  29. o HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown [10]
  30. o alt-svc: add protocol version selection masking [31]
  31. o alt-svc: fix removal of expired cache entry [30]
  32. o alt-svc: make it use h3-22 with ngtcp2 as well
  33. o alt-svc: more liberal ALPN name parsing [17]
  34. o alt-svc: send Alt-Used: in redirected requests [32]
  35. o alt-svc: with quiche, use the quiche h3 alpn string [16]
  36. o appveyor: pass on -k to make
  37. o asyn-thread: create a socketpair to wait on [14]
  38. o build-openssl: fix build with Visual Studio 2019 [45]
  39. o cleanup: move functions out of url.c and make them static [58]
  40. o cleanup: remove the 'numsocks' argument used in many places [25]
  41. o configure: avoid undefined check_for_ca_bundle [37]
  42. o curl.h: add CURL_HTTP_VERSION_3 to the version enum
  43. o curl.h: fix outdated comment [23]
  44. o curl: cap the maximum allowed values for retry time arguments [13]
  45. o curl: handle a libcurl build without netrc support [63]
  46. o curl: make use of CURLINFO_RETRY_AFTER when retrying [35]
  47. o curl: remove outdated comment [24]
  48. o curl: use .curlrc (with a dot) on Windows [52]
  49. o curl: use CURLINFO_PROTOCOL to check for HTTP(s)
  50. o curl_global_init_mem.3: mention it was added in 7.12.0
  51. o curl_version: bump string buffer size to 250
  52. o curl_version_info.3: mentioned ALTSVC and HTTP3
  53. o curl_version_info: offer quic (and h3) library info [38]
  54. o curl_version_info: provide nghttp2 details [2]
  55. o defines: avoid underscore-prefixed defines [47]
  56. o docs/ALTSVC: remove what works and the experimental explanation [34]
  57. o docs/EXPERIMENTAL: explain what it means and what's experimental now
  58. o docs/MANUAL.md: converted to markdown from plain text [3]
  59. o docs/examples/curlx: fix errors [48]
  60. o docs: s/curl_debug/curl_dbg_debug in comments and docs [36]
  61. o easy: resize receive buffer on easy handle reset [9]
  62. o examples: Avoid reserved names in hiperfifo examples [8]
  63. o examples: add http3.c, altsvc.c and http3-present.c [40]
  64. o getenv: support up to 4K environment variable contents on windows [21]
  65. o http09: disable HTTP/0.9 by default in both tool and library [29]
  66. o http2: when marked for closure and wanted to close == OK [56]
  67. o http2_recv: trigger another read when the last data is returned [11]
  68. o http: fix use of credentials from URL when using HTTP proxy [44]
  69. o http_negotiate: improve handling of gss_init_sec_context() failures [18]
  70. o md4: Use our own MD4 when no crypto libraries are available [15]
  71. o multi: call detach_connection before Curl_disconnect [6]
  72. o netrc: make the code try ".netrc" on Windows [52]
  73. o nss: use TLSv1.3 as default if supported [39]
  74. o openssl: build warning free with boringssl [50]
  75. o openssl: use SSL_CTX_set_<min|max>_proto_version() when available [68]
  76. o plan9: add support for running on Plan 9 [22]
  77. o progress: reset download/uploaded counter between transfers [12]
  78. o readwrite_data: repair setting the TIMER_STARTTRANSFER stamp [26]
  79. o scp: fix directory name length used in memcpy [46]
  80. o smb: init *msg to NULL in smb_send_and_recv() [60]
  81. o smtp: check for and bail out on too short EHLO response [59]
  82. o source: remove names from source comments [1]
  83. o spnego_sspi: add typecast to fix build warning [49]
  84. o src/makefile: fix uncompressed hugehelp.c generation [19]
  85. o ssh-libssh: do not specify O_APPEND when not in append mode [7]
  86. o ssh: move code into vssh for SSH backends [53]
  87. o sspi: fix memory leaks [67]
  88. o tests: Replace outdated test case numbering documentation [43]
  89. o tftp: return error when packet is too small for options
  90. o timediff: make it 64 bit (if possible) even with 32 bit time_t [20]
  91. o travis: reduce number of torture tests in 'coverage' [42]
  92. o url: make use of new HTTP version if alt-svc has one [16]
  93. o urlapi: verify the IPv6 numerical address [69]
  94. o urldata: avoid 'generic', use dedicated pointers [57]
  95. o vauth: Use CURLE_AUTH_ERROR for auth function errors [41]
  96. This release includes the following known bugs:
  97. o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
  98. This release would not have looked like this without help, code, reports and
  99. advice from friends like these:
  100. Alessandro Ghedini, Alex Mayorga, Amit Katyal, Balazs Kovacsics,
  101. Brad Spencer, Brandon Dong, Carlo Marcelo Arenas Belón, Christopher Head,
  102. Clément Notin, codesniffer13 on github, Daniel Gustafsson, Daniel Stenberg,
  103. Dominik Hölzl, Eric Wong, Felix Hädicke, Gergely Nagy, Gisle Vanem,
  104. Igor Makarov, Ironbars13 on github, Jason Lee, Jeremy Lainé,
  105. Jonathan Cardoso Machado, Junho Choi, Kamil Dudka, Kyle Abramowitz,
  106. Kyohei Kadota, Lance Ware, Marcel Raad, Max Dymond, Michael Lee,
  107. Michal Čaplygin, migueljcrum on github, Mike Crowe, niallor on github,
  108. osabc on github, patnyb on github, Patrick Monnerat, Peter Wu, Ray Satiro,
  109. Rolf Eike Beer, Steve Holme, Tatsuhiro Tsujikawa, The Infinnovation team,
  110. Thomas Vegas, Tom van der Woerdt, Yiming Jing,
  111. (46 contributors)
  112. Thanks! (and sorry if I forgot to mention someone)
  113. References to bug reports and discussions on issues:
  114. [1] = https://curl.haxx.se/bug/?i=4129
  115. [2] = https://curl.haxx.se/bug/?i=4121
  116. [3] = https://curl.haxx.se/bug/?i=4131
  117. [4] = https://curl.haxx.se/bug/?i=3804
  118. [5] = https://curl.haxx.se/bug/?i=3500
  119. [6] = https://curl.haxx.se/bug/?i=4144
  120. [7] = https://curl.haxx.se/bug/?i=4147
  121. [8] = https://curl.haxx.se/bug/?i=4153
  122. [9] = https://curl.haxx.se/bug/?i=4143
  123. [10] = https://curl.haxx.se/bug/?i=4138
  124. [11] = https://curl.haxx.se/bug/?i=4043
  125. [12] = https://curl.haxx.se/bug/?i=4084
  126. [13] = https://curl.haxx.se/bug/?i=4166
  127. [14] = https://curl.haxx.se/bug/?i=4157
  128. [15] = https://curl.haxx.se/bug/?i=3780
  129. [16] = https://curl.haxx.se/bug/?i=4183
  130. [17] = https://curl.haxx.se/bug/?i=4182
  131. [18] = https://curl.haxx.se/bug/?i=3992
  132. [19] = https://curl.haxx.se/bug/?i=4176
  133. [20] = https://curl.haxx.se/bug/?i=4165
  134. [21] = https://curl.haxx.se/bug/?i=4174
  135. [22] = https://curl.haxx.se/bug/?i=3701
  136. [23] = https://curl.haxx.se/bug/?i=4167
  137. [24] = https://curl.haxx.se/bug/?i=4172
  138. [25] = https://curl.haxx.se/bug/?i=4169
  139. [26] = https://curl.haxx.se/bug/?i=4136
  140. [27] = https://curl.haxx.se/bug/?i=3653
  141. [28] = https://curl.haxx.se/bug/?i=4163
  142. [29] = https://curl.haxx.se/bug/?i=4191
  143. [30] = https://curl.haxx.se/bug/?i=4192
  144. [31] = https://curl.haxx.se/bug/?i=4201
  145. [32] = https://curl.haxx.se/bug/?i=4199
  146. [33] = https://curl.haxx.se/bug/?i=4197
  147. [34] = https://curl.haxx.se/bug/?i=4198
  148. [35] = https://curl.haxx.se/bug/?i=3794
  149. [36] = https://curl.haxx.se/bug/?i=3794
  150. [37] = https://curl.haxx.se/bug/?i=4213
  151. [38] = https://curl.haxx.se/bug/?i=4216
  152. [39] = https://curl.haxx.se/bug/?i=4187
  153. [40] = https://curl.haxx.se/bug/?i=4221
  154. [41] = https://curl.haxx.se/bug/?i=3848
  155. [42] = https://curl.haxx.se/bug/?i=4223
  156. [43] = https://curl.haxx.se/bug/?i=4227
  157. [44] = https://curl.haxx.se/bug/?i=4228
  158. [45] = https://curl.haxx.se/bug/?i=4188
  159. [46] = https://curl.haxx.se/bug/?i=4258
  160. [47] = https://curl.haxx.se/bug/?i=4254
  161. [48] = https://curl.haxx.se/bug/?i=4248
  162. [49] = https://curl.haxx.se/bug/?i=4245
  163. [50] = https://curl.haxx.se/bug/?i=4244
  164. [51] = https://curl.haxx.se/bug/?i=4241
  165. [52] = https://curl.haxx.se/bug/?i=4230
  166. [53] = https://curl.haxx.se/bug/?i=4235
  167. [54] = https://curl.haxx.se/bug/?i=4273
  168. [55] = https://curl.haxx.se/bug/?i=4250
  169. [56] = https://curl.haxx.se/bug/?i=4267
  170. [57] = https://curl.haxx.se/bug/?i=4290
  171. [58] = https://curl.haxx.se/bug/?i=4289
  172. [59] = https://curl.haxx.se/bug/?i=4287
  173. [60] = https://curl.haxx.se/bug/?i=4286
  174. [61] = https://curl.haxx.se/bug/?i=4283
  175. [62] = https://curl.haxx.se/bug/?i=4279
  176. [63] = https://curl.haxx.se/bug/?i=4302
  177. [64] = https://curl.haxx.se/docs/CVE-2019-5481.html
  178. [65] = https://curl.haxx.se/docs/CVE-2019-5482.html
  179. [66] = https://curl.haxx.se/bug/?i=4307
  180. [67] = https://curl.haxx.se/bug/?i=4299
  181. [68] = https://curl.haxx.se/bug/?i=4304
  182. [69] = https://curl.haxx.se/bug/?i=4315