RELEASE-NOTES 10 KB

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