RELEASE-NOTES 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. Curl and libcurl 7.61.1
  2. Public curl releases: 176
  3. Command line options: 218
  4. curl_easy_setopt() options: 258
  5. Public functions in libcurl: 74
  6. Contributors: 1787
  7. This release includes the following bugfixes:
  8. o security advisory (CVE-2018-14618): NTLM password overflow via integer overflow [73]
  9. o CURLINFO_SIZE_UPLOAD: fix missing counter update [46]
  10. o CURLOPT_ACCEPT_ENCODING.3: list them comma-separated
  11. o CURLOPT_SSL_CTX_FUNCTION.3: might cause accidental connection reuse [72]
  12. o Curl_getoff_all_pipelines: improved for multiplexed [3]
  13. o DEPRECATE: remove release date from 7.62.0
  14. o HTTP: Don't attempt to needlessly decompress redirect body [30]
  15. o INTERNALS: require GnuTLS >= 2.11.3 [62]
  16. o README.md: add LGTM.com code quality grade for C/C++ [42]
  17. o SSLCERTS: improve the openssl command line
  18. o Silence GCC 8 cast-function-type warnings [47]
  19. o ares: check for NULL in completed-callback [3]
  20. o asyn-thread: Remove unused macro [40]
  21. o auth: only pick CURLAUTH_BEARER if we *have* a Bearer token [15]
  22. o auth: pick Bearer authentication whenever a token is available [15]
  23. o cmake: CMake config files are defining CURL_STATICLIB for static builds [54]
  24. o cmake: Respect BUILD_SHARED_LIBS [35]
  25. o cmake: Update scripts to use consistent style [9]
  26. o cmake: bumped minimum version to 3.4 [34]
  27. o cmake: link curl to the OpenSSL targets instead of lib absolute paths [34]
  28. o configure: conditionally enable pedantic-errors [64]
  29. o configure: fix for -lpthread detection with OpenSSL and pkg-config [38]
  30. o conn: remove the boolean 'inuse' field [3]
  31. o content_encoding: accept up to 4 unknown trailer bytes after raw deflate data [5]
  32. o cookie tests: treat files as text
  33. o cookies: support creation-time attribute for cookies [75]
  34. o curl: Fix segfault when -H @headerfile is empty [23]
  35. o curl: add http code 408 to transient list for --retry [78]
  36. o curl: fix time-of-check, time-of-use race in dir creation [71]
  37. o curl: use Content-Disposition before the "URL end" for -OJ [29]
  38. o curl: warn the user if a given file name looks like an option [56]
  39. o curl_threads: silence bad-function-cast warning [69]
  40. o darwinssl: add support for ALPN negotiation [7]
  41. o docs/CURLOPT_URL: fix indentation [20]
  42. o docs/CURLOPT_WRITEFUNCTION: size is always 1 [19]
  43. o docs/SECURITY-PROCESS: mention bounty, drop pre-notify
  44. o docs/examples: add hiperfifo example using linux epoll/timerfd [21]
  45. o docs: add disallow-username-in-url.d and haproxy-protocol.d to dist [50]
  46. o docs: clarify NO_PROXY env variable functionality [70]
  47. o docs: improved the manual pages of some callbacks [48]
  48. o docs: mention NULL is fine input to several functions [43]
  49. o formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT [40]
  50. o gopher: Do not translate `?' to `%09' [67]
  51. o header output: switch off all styles, not just unbold [8]
  52. o hostip: fix unused variable warning
  53. o http2: Use correct format identifier for stream_id [77]
  54. o http2: abort the send_callback if not setup yet [63]
  55. o http2: avoid set_stream_user_data() before stream is assigned [61]
  56. o http2: check nghttp2_session_set_stream_user_data return code [55]
  57. o http2: clear the drain counter in Curl_http2_done [27]
  58. o http2: make sure to send after RST_STREAM [58]
  59. o http2: separate easy handle from connections better [12]
  60. o http: fix for tiny "HTTP/0.9" response [51]
  61. o http_proxy: Remove unused macro SELECT_TIMEOUT [40]
  62. o lib/Makefile: only do symbol hiding if told to [32]
  63. o lib1502: fix memory leak in torture test [44]
  64. o lib1522: fix curl_easy_setopt argument type
  65. o libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation [66]
  66. o mime: check Curl_rand_hex's return code [22]
  67. o multi: always do the COMPLETED procedure/state [3]
  68. o openssl: assume engine support in 1.0.0 or later [2]
  69. o openssl: fix debug messages [39]
  70. o projects: Improve Windows perl detection in batch scripts [49]
  71. o retry: return error if rewind was necessary but didn't happen [28]
  72. o reuse_conn(): memory leak - free old_conn->options [17]
  73. o schannel: client certificate store opening fix [68]
  74. o schannel: enable CALG_TLS1PRF for w32api >= 5.1
  75. o schannel: fix MinGW compile break [1]
  76. o sftp: don't send post-qoute sequence when retrying a connection [79]
  77. o smb: fix memory leak on early failure [26]
  78. o smb: fix memory-leak in URL parse error path [4]
  79. o smb_getsock: always wait for write socket too [11]
  80. o ssh-libssh: fix infinite connect loop on invalid private key [53]
  81. o ssh-libssh: reduce excessive verbose output about pubkey auth [53]
  82. o ssh-libssh: use FALLTHROUGH to silence gcc8 [76]
  83. o ssl: set engine implicitly when a PKCS#11 URI is provided [36]
  84. o sws: handle EINTR when calling select() [24]
  85. o system_win32: fix version checking [16]
  86. o telnet: Remove unused macros TELOPTS and TELCMDS [40]
  87. o test1143: disable MSYS2's POSIX path conversion [10]
  88. o test1148: disable if decimal separator is not point [65]
  89. o test1307: (fnmatch testing) disabled [31]
  90. o test1422: add required file feature [6]
  91. o test1531: Add timeout [41]
  92. o test1540: Remove unused macro TEST_HANG_TIMEOUT [40]
  93. o test214: disable MSYS2's POSIX path conversion for URL
  94. o test320: treat curl320.out file as binary [14]
  95. o tests/http_pipe.py: Use /usr/bin/env to find python
  96. o tests: Don't use Windows path %PWD for SSH tests [74]
  97. o tests: fixes for Windows line endlings [13]
  98. o tool_operate: Fix setting proxy TLS 1.3 ciphers
  99. o travis: build darwinssl on macos 10.12 to fix linker errors [33]
  100. o travis: execute "set -eo pipefail" for coverage build [45]
  101. o travis: run a 'make checksrc' too [25]
  102. o travis: update to GCC-8 [52]
  103. o travis: verify that man pages can be regenerated [50]
  104. o upload: allocate upload buffer on-demand [60]
  105. o upload: change default UPLOAD_BUFSIZE to 64KB [60]
  106. o urldata: remove unused pipe_broke struct field [57]
  107. o vtls: reinstantiate engine on duplicated handles [59]
  108. o windows: implement send buffer tuning [37]
  109. o wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random [18]
  110. This release includes the following known bugs:
  111. o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
  112. This release would not have looked like this without help, code, reports and
  113. advice from friends like these:
  114. adnn on github, Anderson Toshiyuki Sasaki, Andrei Virtosu, Anton Gerasimov,
  115. Bas van Schaik, Carie Pointer, Christopher Head, clbr on github,
  116. Dan Fandrich, Daniel Gustafsson, Daniel Jeliński, Daniel Stenberg,
  117. Darío Hereñú, Even Rouault, Harry Sintonen, Ihor Karpenko, Jakub Zakrzewski,
  118. Jeffrey Walton, Jeroen Ooms, Johannes Schindelin, John Butterfield,
  119. Josh Bialkowski, Kamil Dudka, Kirill Marchuk, Laurent Bonnans,
  120. Leonardo Taccari, Marcel Raad, Markus Elfring, Michael Kaufmann,
  121. Nick Zitzmann, Nikos Mavrogiannopoulos, Patrick Monnerat, Paul Howarth,
  122. Przemysław Tomaszewski, pszemus on github, Ran Mozes, Ray Satiro,
  123. Rikard Falkeborn, Rodger Combs, Ruslan Baratov, Sergei Nikulov,
  124. Thomas Klausner, Tobias Blomberg, Viktor Szakats, Zero King, Zhaoyang Wu,
  125. (46 contributors)
  126. Thanks! (and sorry if I forgot to mention someone)
  127. References to bug reports and discussions on issues:
  128. [1] = https://github.com/curl/curl/pull/2721#issuecomment-403636043
  129. [2] = https://curl.haxx.se/bug/?i=2732
  130. [3] = https://curl.haxx.se/bug/?i=2733
  131. [4] = https://curl.haxx.se/bug/?i=2740
  132. [5] = https://curl.haxx.se/bug/?i=2719
  133. [6] = https://curl.haxx.se/bug/?i=2741
  134. [7] = https://curl.haxx.se/bug/?i=2731
  135. [8] = https://curl.haxx.se/bug/?i=2736
  136. [9] = https://curl.haxx.se/bug/?i=2727
  137. [10] = https://curl.haxx.se/bug/?i=2765
  138. [11] = https://curl.haxx.se/bug/?i=2768
  139. [12] = https://curl.haxx.se/bug/?i=2751
  140. [13] = https://curl.haxx.se/bug/?i=2772
  141. [14] = https://curl.haxx.se/bug/?i=2776
  142. [15] = https://curl.haxx.se/bug/?i=2754
  143. [16] = https://curl.haxx.se/bug/?i=2792
  144. [17] = https://curl.haxx.se/bug/?i=2790
  145. [18] = https://curl.haxx.se/bug/?i=2784
  146. [19] = https://curl.haxx.se/bug/?i=2787
  147. [20] = https://curl.haxx.se/bug/?i=2788
  148. [21] = https://curl.haxx.se/bug/?i=2804
  149. [22] = https://curl.haxx.se/bug/?i=2795
  150. [23] = https://curl.haxx.se/bug/?i=2797
  151. [24] = https://curl.haxx.se/bug/?i=2808
  152. [25] = https://curl.haxx.se/bug/?i=2811
  153. [26] = https://curl.haxx.se/bug/?i=2769
  154. [27] = https://curl.haxx.se/bug/?i=2800
  155. [28] = https://curl.haxx.se/bug/?i=2801
  156. [29] = https://curl.haxx.se/bug/?i=2783
  157. [30] = https://curl.haxx.se/bug/?i=2798
  158. [31] = https://curl.haxx.se/bug/?i=2825
  159. [32] = https://curl.haxx.se/bug/?i=2830
  160. [33] = https://curl.haxx.se/bug/?i=2835
  161. [34] = https://curl.haxx.se/bug/?i=2753
  162. [35] = https://curl.haxx.se/bug/?i=2755
  163. [36] = https://curl.haxx.se/bug/?i=2333
  164. [37] = https://curl.haxx.se/mail/lib-2018-07/0080.html
  165. [38] = https://curl.haxx.se/bug/?i=2848
  166. [39] = https://curl.haxx.se/bug/?i=2806
  167. [40] = https://curl.haxx.se/bug/?i=2852
  168. [41] = https://curl.haxx.se/bug/?i=2853
  169. [42] = https://curl.haxx.se/bug/?i=2857
  170. [43] = https://curl.haxx.se/bug/?i=2837
  171. [44] = https://curl.haxx.se/bug/?i=2861
  172. [45] = https://curl.haxx.se/bug/?i=2862
  173. [46] = https://curl.haxx.se/bug/?i=2847
  174. [47] = https://curl.haxx.se/bug/?i=2860
  175. [48] = https://curl.haxx.se/bug/?i=2868
  176. [49] = https://curl.haxx.se/bug/?i=2865
  177. [50] = https://curl.haxx.se/bug/?i=2856
  178. [51] = https://curl.haxx.se/bug/?i=2420
  179. [52] = https://curl.haxx.se/bug/?i=2869
  180. [53] = https://curl.haxx.se/bug/?i=2879
  181. [54] = https://curl.haxx.se/bug/?i=2817
  182. [55] = https://curl.haxx.se/bug/?i=2880
  183. [56] = https://curl.haxx.se/bug/?i=2885
  184. [57] = https://curl.haxx.se/bug/?i=2871
  185. [58] = https://curl.haxx.se/bug/?i=2882
  186. [59] = https://curl.haxx.se/bug/?i=2829
  187. [60] = https://curl.haxx.se/bug/?i=2892
  188. [61] = https://curl.haxx.se/bug/?i=2894
  189. [62] = https://curl.haxx.se/bug/?i=2890
  190. [63] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
  191. [64] = https://curl.haxx.se/bug/?i=2747
  192. [65] = https://curl.haxx.se/bug/?i=2786
  193. [66] = https://curl.haxx.se/bug/?i=2904
  194. [67] = https://curl.haxx.se/bug/?i=2910
  195. [68] = https://curl.haxx.se/mail/lib-2018-08/0198.html
  196. [69] = https://curl.haxx.se/bug/?i=2908
  197. [70] = https://curl.haxx.se/bug/?i=2773
  198. [71] = https://curl.haxx.se/bug/?i=2739
  199. [72] = https://curl.haxx.se/bug/?i=2915
  200. [73] = https://curl.haxx.se/docs/CVE-2018-14618.html
  201. [74] = https://curl.haxx.se/bug/?i=2920
  202. [75] = https://curl.haxx.se/bug/?i=2524
  203. [76] = https://curl.haxx.se/bug/?i=2922
  204. [77] = https://curl.haxx.se/bug/?i=2928
  205. [78] = https://curl.haxx.se/bug/?i=2925
  206. [79] = https://curl.haxx.se/bug/?i=2939