RELEASE-NOTES 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. curl and libcurl 7.84.0
  2. Public curl releases: 209
  3. Command line options: 248
  4. curl_easy_setopt() options: 297
  5. Public functions in libcurl: 88
  6. Contributors: 2652
  7. This release includes the following changes:
  8. o curl: add --rate to set max request rate per time unit [69]
  9. o curl: deprecate --random-file and --egd-file [12]
  10. o curl_version_info: add CURL_VERSION_THREADSAFE [100]
  11. o CURLINFO_CAPATH/CAINFO: get the default CA paths from libcurl [9]
  12. o lib: make curl_global_init() threadsafe when possible [101]
  13. o libssh2: add CURLOPT_SSH_HOSTKEYFUNCTION [78]
  14. o opts: deprecate RANDOM_FILE and EGDSOCKET [13]
  15. o socks: support unix sockets for socks proxy [2]
  16. This release includes the following bugfixes:
  17. o aws-sigv4: fix potentional NULL pointer arithmetic [48]
  18. o bindlocal: don't use a random port if port number would wrap [14]
  19. o c-hyper: mark status line as status for Curl_client_write() [58]
  20. o ci: avoid `cmake -Hpath` [114]
  21. o CI: bump FreeBSD 13.0 to 13.1 [127]
  22. o ci: update github actions [36]
  23. o cmake: add libpsl support [3]
  24. o cmake: do not add libcurl.rc to the static libcurl library [53]
  25. o cmake: enable curl.rc for all Windows targets [55]
  26. o cmake: fix detecting libidn2 [56]
  27. o cmake: support adding a suffix to the OS value [54]
  28. o configure: skip libidn2 detection when winidn is used [89]
  29. o configure: use the SED value to invoke sed [28]
  30. o configure: warn about rustls being experimental [103]
  31. o content_encoding: return error on too many compression steps [106]
  32. o cookie: address secure domain overlay [7]
  33. o cookie: apply limits [83]
  34. o copyright.pl: parse and use .reuse/dep5 for skips [105]
  35. o copyright: make repository REUSE compliant [119]
  36. o curl.1: add a few see also --tls-max [52]
  37. o curl.1: mention exit code zero too [44]
  38. o curl: re-enable --no-remote-name [31]
  39. o curl_easy_pause.3: remove explanation of progress function [97]
  40. o curl_getdate.3: document that some illegal dates pass through [34]
  41. o Curl_parsenetrc: don't access local pwbuf outside of scope [27]
  42. o curl_url_set.3: clarify by default using known schemes only [120]
  43. o CURLOPT_ALTSVC.3: document the file format [118]
  44. o CURLOPT_FILETIME.3: fix the protocols this works with
  45. o CURLOPT_HTTPHEADER.3: improve comment in example [66]
  46. o CURLOPT_NETRC.3: document the .netrc file format
  47. o CURLOPT_PORT.3: We discourage using this option [92]
  48. o CURLOPT_RANGE.3: remove ranged upload advice [99]
  49. o digest: added detection of more syntax error in server headers [81]
  50. o digest: tolerate missing "realm" [80]
  51. o digest: unquote realm and nonce before processing [82]
  52. o DISABLED: disable 1021 for hyper again
  53. o docs/cmdline-opts: add copyright and license identifier to each file [112]
  54. o docs/CONTRIBUTE.md: document the 'needs-votes' concept [79]
  55. o docs: clarify data replacement policy for MIME API [16]
  56. o doh: remove UNITTEST macro definition [67]
  57. o examples/crawler.c: use the curl license [73]
  58. o examples: remove fopen.c and rtsp.c [76]
  59. o FAQ: Clarify Windows double quote usage [42]
  60. o fopen: add Curl_fopen() for better overwriting of files [72]
  61. o ftp: restore protocol state after http proxy CONNECT [110]
  62. o ftp: when failing to do a secure GSSAPI login, fail hard [62]
  63. o GHA/hyper: enable debug in the build
  64. o gssapi: improve handling of errors from gss_display_status [45]
  65. o gssapi: initialize gss_buffer_desc strings
  66. o headers api: remove EXPERIMENTAL tag [35]
  67. o http2: always debug print stream id in decimal with %u [46]
  68. o http2: reject overly many push-promise headers [63]
  69. o http: restore header folding behavior [64]
  70. o hyper: use 'alt-used' [71]
  71. o krb5: return error properly on decode errors [107]
  72. o lib: make more protocol specific struct fields #ifdefed [84]
  73. o libcurl-security.3: add "Secrets in memory" [30]
  74. o libcurl-security.3: document CRLF header injection [98]
  75. o libssh: skip the fake-close when libssh does the right thing [102]
  76. o links: update dead links to the curl-wiki [21]
  77. o log2changes: do not indent empty lines [ci skip] [37]
  78. o macos9: remove partial support [22]
  79. o Makefile.am: fix portability issues [1]
  80. o Makefile.m32: delete obsolete options, improve -On [ci skip] [65]
  81. o Makefile.m32: delete two obsolete OpenSSL options [ci skip] [39]
  82. o Makefile.m32: stop forcing XP target with ipv6 enabled [ci skip] [116]
  83. o max-time.d: clarify max-time sets max transfer time [70]
  84. o mprintf: ignore clang non-literal format string [19]
  85. o netrc: check %USERPROFILE% as well on Windows [77]
  86. o netrc: support quoted strings [33]
  87. o ngtcp2: allow curl to send larger UDP datagrams [29]
  88. o ngtcp2: correct use of ngtcp2 and nghttp3 signed integer types [25]
  89. o ngtcp2: enable Linux GSO [91]
  90. o ngtcp2: extend QUIC transport parameters buffer [4]
  91. o ngtcp2: fix alert_read_func return value [26]
  92. o ngtcp2: fix typo in preprocessor condition [121]
  93. o ngtcp2: handle error from ngtcp2_conn_submit_crypto_data [5]
  94. o ngtcp2: send appropriate connection close error code [6]
  95. o ngtcp2: support boringssl crypto backend [17]
  96. o ngtcp2: use helper funcs to simplify TLS handshake integration [68]
  97. o ntlm: provide a fixed fake host name [32]
  98. o projects: fix third-party SSL library build paths for Visual Studio [125]
  99. o quic: add Curl_quic_idle [18]
  100. o quiche: support ca-fallback [49]
  101. o rand: stop detecting /dev/urandom in cross-builds [113]
  102. o remote-name.d: mention --output-dir [88]
  103. o runtests.pl: add the --repeat parameter to the --help output [43]
  104. o runtests: fix skipping tests not done event-based [95]
  105. o runtests: skip starting the ssh server if user name is lacking [104]
  106. o scripts/copyright.pl: fix the exclusion to not ignore man pages [75]
  107. o sectransp: check for a function defined when __BLOCKS__ is undefined [20]
  108. o select: return error from "lethal" poll/select errors [93]
  109. o server/sws: support spaces in the HTTP request path
  110. o speed-limit/time.d: mention these affect transfers in either direction [74]
  111. o strcase: some optimisations [8]
  112. o test 2081: add a valid reply for the second request [60]
  113. o test 675: add missing CR so the test passes when run through Privoxy [61]
  114. o test414: add the '--resolve' keyword [23]
  115. o test681: verify --no-remote-name [90]
  116. o tests 266, 116 and 1540: add a small write delay
  117. o tests/data/test1501: kill ftp server after slow LIST response [59]
  118. o tests/getpart: fix getpartattr to work with "data" and "data2"
  119. o tests/server/sws.c: change the HTTP writedelay unit to milliseconds [47]
  120. o test{440,441,493,977}: add "HTTP proxy" keywords [40]
  121. o tool_getparam: fix --parallel-max maximum value constraint [51]
  122. o tool_operate: make sure --fail-with-body works with --retry [24]
  123. o transfer: fix potential NULL pointer dereference [15]
  124. o transfer: maintain --path-as-is after redirects [96]
  125. o transfer: upload performance; avoid tiny send [124]
  126. o url: free old conn better on reuse [41]
  127. o url: remove redundant #ifdefs in allocate_conn()
  128. o url: URL encode the path when extracted, if spaces were set
  129. o urlapi: make curl_url_set(url, CURLUPART_URL, NULL, 0) clear all parts [126]
  130. o urlapi: support CURLU_URLENCODE for curl_url_get()
  131. o urldata: reduce size of a few struct fields [86]
  132. o urldata: remove three unused booleans from struct UserDefined [87]
  133. o urldata: store tcp_keepidle and tcp_keepintvl as ints [85]
  134. o version: allow stricmp() for sorting the feature list [57]
  135. o vtls: make curl_global_sslset thread-safe [94]
  136. o wolfssh.h: removed [10]
  137. o wolfssl: correct the failf() message when a handle can't be made [38]
  138. o wolfSSL: explicitly use compatibility layer [11]
  139. o x509asn1: mark msnprintf return as unchecked [50]
  140. This release includes the following known bugs:
  141. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  142. This release would not have looked like this without help, code, reports and
  143. advice from friends like these:
  144. Andrea Pappacoda, Balakrishnan Balasubramanian, Boris Verkhovskiy,
  145. Carlo Alberto, Christian Weisgerber, Dan Fandrich, Daniel Gustafsson,
  146. Daniel Stenberg, Egor Pugin, Emanuele Torre, Emil Engler, Evgeny Grin,
  147. Fabian Keil, Frank Gevaerts, Frazer Smith, Gisle Vanem, Glenn Strauss,
  148. Gregor Jasny, Harry Sintonen, Illarion Taev, ImpatientHippo on GitHub,
  149. Jakub Bochenski, Kamil Dudka, Karlson2k on github, KotlinIsland on github,
  150. Ladar Levison, Marcel Raad, Marc Hörsken, Marcus T, Max Mehl, michael musset,
  151. Nick Zitzmann, Nuru on github, Patrick Monnerat, Petr Pisar, Philip H,
  152. Pierrick Charron, Ray Satiro, Ricardo M. Correia, Simon Berger,
  153. Stefan Eissing, Steve Holme, Tatsuhiro Tsujikawa, Thomas Guillem, Tom Eccles,
  154. Viktor Szakats, Vincent Torri, vvb2060 on github, Willem Hoek,
  155. Wolf Vollprecht, Elms
  156. (51 contributors)
  157. References to bug reports and discussions on issues:
  158. [1] = https://curl.se/mail/lib-2022-05/0024.html
  159. [2] = https://curl.se/bug/?i=8668
  160. [3] = https://curl.se/bug/?i=8865
  161. [4] = https://curl.se/bug/?i=8872
  162. [5] = https://curl.se/bug/?i=8871
  163. [6] = https://curl.se/bug/?i=8870
  164. [7] = https://hackerone.com/reports/1560324
  165. [8] = https://curl.se/bug/?i=8875
  166. [9] = https://curl.se/bug/?i=8888
  167. [10] = https://curl.se/bug/?i=8863
  168. [11] = https://curl.se/bug/?i=8864
  169. [12] = https://curl.se/bug/?i=8670
  170. [13] = https://curl.se/bug/?i=8670
  171. [14] = https://curl.se/bug/?i=8862
  172. [15] = https://curl.se/bug/?i=8857
  173. [16] = https://curl.se/bug/?i=8860
  174. [17] = https://curl.se/bug/?i=8789
  175. [18] = https://curl.se/bug/?i=8698
  176. [19] = https://curl.se/bug/?i=8740
  177. [20] = https://curl.se/bug/?i=8846
  178. [21] = https://curl.se/bug/?i=8897
  179. [22] = https://curl.se/bug/?i=8836
  180. [23] = https://curl.se/bug/?i=8959
  181. [24] = https://curl.se/bug/?i=8845
  182. [25] = https://curl.se/bug/?i=8851
  183. [26] = https://curl.se/bug/?i=8852
  184. [27] = https://curl.se/bug/?i=8850
  185. [28] = https://curl.se/bug/?i=8891
  186. [29] = https://curl.se/bug/?i=8883
  187. [30] = https://curl.se/bug/?i=8881
  188. [31] = https://curl.se/bug/?i=8931
  189. [32] = https://curl.se/bug/?i=8859
  190. [33] = https://curl.se/bug/?i=8908
  191. [34] = https://curl.se/bug/?i=8938
  192. [35] = https://curl.se/bug/?i=8900
  193. [36] = https://curl.se/bug/?i=8843
  194. [37] = https://curl.se/bug/?i=8887
  195. [38] = https://curl.se/bug/?i=8885
  196. [39] = https://curl.se/bug/?i=8884
  197. [40] = https://curl.se/bug/?i=8959
  198. [41] = https://curl.se/bug/?i=8841
  199. [42] = https://curl.se/bug/?i=8823
  200. [43] = https://curl.se/bug/?i=8959
  201. [44] = https://curl.se/bug/?i=8833
  202. [45] = https://curl.se/bug/?i=8832
  203. [46] = https://curl.se/bug/?i=8808
  204. [47] = https://curl.se/bug/?i=8827
  205. [48] = https://curl.se/bug/?i=8814
  206. [49] = https://curl.se/bug/?i=8696
  207. [50] = https://curl.se/bug/?i=8831
  208. [51] = https://curl.se/bug/?i=8930
  209. [52] = https://curl.se/bug/?i=8929
  210. [53] = https://curl.se/bug/?i=8918
  211. [54] = https://curl.se/bug/?i=8919
  212. [55] = https://curl.se/bug/?i=8918
  213. [56] = https://curl.se/bug/?i=8917
  214. [57] = https://curl.se/bug/?i=8916
  215. [58] = https://curl.se/bug/?i=8894
  216. [59] = https://curl.se/bug/?i=8907
  217. [60] = https://curl.se/bug/?i=8959
  218. [61] = https://curl.se/bug/?i=8959
  219. [62] = https://hackerone.com/reports/1590102
  220. [63] = https://hackerone.com/reports/1589847
  221. [64] = https://curl.se/bug/?i=8844
  222. [65] = https://curl.se/bug/?i=8904
  223. [66] = https://curl.se/bug/?i=9025
  224. [67] = https://curl.se/bug/?i=8902
  225. [68] = https://curl.se/bug/?i=8968
  226. [69] = https://curl.se/bug/?i=8671
  227. [70] = https://curl.se/bug/?i=8877
  228. [71] = https://curl.se/bug/?i=8898
  229. [72] = https://curl.se/docs/CVE-2022-32207.html
  230. [73] = https://curl.se/bug/?i=8950
  231. [74] = https://curl.se/bug/?i=8948
  232. [75] = https://curl.se/bug/?i=8952
  233. [76] = https://curl.se/bug/?i=8949
  234. [77] = https://curl.se/bug/?i=8855
  235. [78] = https://curl.se/bug/?i=7959
  236. [79] = https://curl.se/bug/?i=8910
  237. [80] = https://curl.se/bug/?i=8912
  238. [81] = https://curl.se/bug/?i=8912
  239. [82] = https://curl.se/bug/?i=8912
  240. [83] = https://curl.se/docs/CVE-2022-32205.html
  241. [84] = https://curl.se/bug/?i=8944
  242. [85] = https://curl.se/bug/?i=8940
  243. [86] = https://curl.se/bug/?i=8940
  244. [87] = https://curl.se/bug/?i=8940
  245. [88] = https://curl.se/bug/?i=8945
  246. [89] = https://curl.se/bug/?i=8934
  247. [90] = https://curl.se/bug/?i=8942
  248. [91] = https://curl.se/bug/?i=8909
  249. [92] = https://curl.se/bug/?i=8941
  250. [93] = https://curl.se/bug/?i=8921
  251. [94] = https://curl.se/bug/?i=9016
  252. [95] = https://curl.se/bug/?i=8977
  253. [96] = https://curl.se/bug/?i=8974
  254. [97] = https://curl.se/bug/?i=9015
  255. [98] = https://curl.se/bug/?i=8964
  256. [99] = https://curl.se/bug/?i=8969
  257. [100] = https://curl.se/bug/?i=8680
  258. [101] = https://curl.se/bug/?i=8680
  259. [102] = https://curl.se/bug/?i=9021
  260. [103] = https://curl.se/bug/?i=9019
  261. [104] = https://curl.se/bug/?i=9013
  262. [105] = https://curl.se/bug/?i=9006
  263. [106] = https://curl.se/docs/CVE-2022-32206.html
  264. [107] = https://curl.se/docs/CVE-2022-32208.html
  265. [110] = https://curl.se/bug/?i=8737
  266. [112] = https://curl.se/bug/?i=9002
  267. [113] = https://curl.se/bug/?i=9038
  268. [114] = https://curl.se/bug/?i=9008
  269. [116] = https://curl.se/bug/?i=9035
  270. [118] = https://curl.se/bug/?i=9033
  271. [119] = https://curl.se/bug/?i=8869
  272. [120] = https://curl.se/bug/?i=8994
  273. [121] = https://curl.se/bug/?i=8981
  274. [124] = https://curl.se/bug/?i=8965
  275. [125] = https://curl.se/bug/?i=8991
  276. [126] = https://curl.se/bug/?i=9028
  277. [127] = https://curl.se/bug/?i=8815