• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1                                  _   _ ____  _
2                              ___| | | |  _ \| |
3                             / __| | | | |_) | |
4                            | (__| |_| |  _ <| |___
5                             \___|\___/|_| \_\_____|
6
7                                  Changelog
8
9Version 7.64.1 (27 Mar 2019)
10
11Daniel Stenberg (27 Mar 2019)
12- RELEASE: 7.64.1
13
14- Revert "ntlm: remove USE_WIN32_CRYPTO check to get USE_NTLM2SESSION set"
15
16  This reverts commit 9130ead9fcabdb6b8fbdb37c0b38be2d326adb00.
17
18  Fixes #3708
19
20- [Christian Schmitz brought this change]
21
22  ntlm: remove USE_WIN32_CRYPTO check to get USE_NTLM2SESSION set
23
24  Closes #3704
25
26Jay Satiro (26 Mar 2019)
27- tool_cb_wrt: fix writing to Windows null device NUL
28
29  - Improve console detection.
30
31  Prior to this change WriteConsole could be called to write to a handle
32  that may not be a console, which would cause an error. This issue is
33  limited to character devices that are not also consoles such as the null
34  device NUL.
35
36  Bug: https://github.com/curl/curl/issues/3175#issuecomment-439068724
37  Reported-by: Gisle Vanem
38
39- CURLMOPT_PIPELINING.3: fix typo
40
41Daniel Stenberg (25 Mar 2019)
42- TODO: config file parsing
43
44  Closes #3698
45
46Jay Satiro (24 Mar 2019)
47- os400: Disable Alt-Svc by default since it's experimental
48
49  Follow-up to 520f0b4 which added Alt-Svc support and enabled it by
50  default for OS400. Since the feature is experimental, it should be
51  disabled by default.
52
53  Ref: https://github.com/curl/curl/commit/520f0b4#commitcomment-32792332
54  Ref: https://curl.haxx.se/mail/lib-2019-02/0008.html
55
56  Closes https://github.com/curl/curl/pull/3688
57
58Dan Fandrich (24 Mar 2019)
59- tests: Fixed XML validation errors in some test files.
60
61- tests: Fix some incorrect precheck error messages.
62
63  [ci skip]
64
65Daniel Stenberg (22 Mar 2019)
66- curl_url.3: this is not experimental anymore
67
68- travis: bump the used wolfSSL version to 4.0.0
69
70  Test 311 is now fine, leaving only 313 (CRL) disabled.
71
72  Test 313 details can be found here:
73  https://github.com/wolfSSL/wolfssl/issues/1546
74
75  Closes #3697
76
77Daniel Gustafsson (22 Mar 2019)
78- lib: Fix typos in comments
79
80David Woodhouse (20 Mar 2019)
81- openssl: if cert type is ENG and no key specified, key is ENG too
82
83  Fixes #3692
84  Closes #3692
85
86Daniel Stenberg (20 Mar 2019)
87- sectransp: tvOS 11 is required for ALPN support
88
89  Reported-by: nianxuejie on github
90  Assisted-by: Nick Zitzmann
91  Assisted-by: Jay Satiro
92  Fixes #3689
93  Closes #3690
94
95- test1541: threaded connection sharing
96
97  The threaded-shared-conn.c example turned into test case. Only works if
98  pthread was detected.
99
100  An attempt to detect future regressions such as e3a53e3efb942a5
101
102  Closes #3687
103
104Patrick Monnerat (17 Mar 2019)
105- os400: alt-svc support.
106
107  Although experimental, enable it in the platform config file.
108  Upgrade ILE/RPG binding.
109
110Daniel Stenberg (17 Mar 2019)
111- conncache: use conn->data to know if a transfer owns it
112
113  - make sure an already "owned" connection isn't returned unless
114    multiplexed.
115
116  - clear ->data when returning the connection to the cache again
117
118  Regression since 7.62.0 (probably in commit 1b76c38904f0)
119
120  Bug: https://curl.haxx.se/mail/lib-2019-03/0064.html
121
122  Closes #3686
123
124- RELEASE-NOTES: synced
125
126- [Chris Young brought this change]
127
128  configure: add --with-amissl
129
130  AmiSSL is an Amiga native library which provides a wrapper over OpenSSL.
131  It also requires all programs using it to use bsdsocket.library
132  directly, rather than accessing socket functions through clib, which
133  libcurl was not necessarily doing previously. Configure will now check
134  for the headers and ensure they are included if found.
135
136  Closes #3677
137
138- [Chris Young brought this change]
139
140  vtls: rename some of the SSL functions
141
142  ... in the SSL structure as AmiSSL is using macros for the socket API
143  functions.
144
145- [Chris Young brought this change]
146
147  tool_getpass: termios.h is present on AmigaOS 3, but no tcgetattr/tcsetattr
148
149- [Chris Young brought this change]
150
151  tool_operate: build on AmigaOS
152
153- makefile: make checksrc and hugefile commands "silent"
154
155  ... to match the style already used for compiling, linking
156  etc. Acknowledges 'make V=1' to enable verbose.
157
158  Closes #3681
159
160- curl.1: --user and --proxy-user are hidden from ps output
161
162  Suggested-by: Eric Curtin
163  Improved-by: Dan Fandrich
164  Ref: #3680
165
166  Closes #3683
167
168- curl.1: mark the argument to --cookie as <data|filename>
169
170  From a discussion in #3676
171
172  Suggested-by: Tim Rühsen
173
174  Closes #3682
175
176Dan Fandrich (14 Mar 2019)
177- fuzzer: Only clone the latest fuzzer code, for speed.
178
179Daniel Stenberg (14 Mar 2019)
180- [Dominik Hölzl brought this change]
181
182  Negotiate: fix for HTTP POST with Negotiate
183
184  * Adjusted unit tests 2056, 2057
185  * do not generally close connections with CURLAUTH_NEGOTIATE after every request
186  * moved negotiatedata from UrlState to connectdata
187  * Added stream rewind logic for CURLAUTH_NEGOTIATE
188  * introduced negotiatedata::GSS_AUTHDONE and negotiatedata::GSS_AUTHSUCC
189  * Consider authproblem state for CURLAUTH_NEGOTIATE
190  * Consider reuse_forbid for CURLAUTH_NEGOTIATE
191  * moved and adjusted negotiate authentication state handling from
192    output_auth_headers into Curl_output_negotiate
193  * Curl_output_negotiate: ensure auth done is always set
194  * Curl_output_negotiate: Set auth done also if result code is
195    GSS_S_CONTINUE_NEEDED/SEC_I_CONTINUE_NEEDED as this result code may
196    also indicate the last challenge request (only works with disabled
197    Expect: 100-continue and CURLOPT_KEEP_SENDING_ON_ERROR -> 1)
198  * Consider "Persistent-Auth" header, detect if not present;
199    Reset/Cleanup negotiate after authentication if no persistent
200    authentication
201  * apply changes introduced with #2546 for negotiate rewind logic
202
203  Fixes #1261
204  Closes #1975
205
206- [Marc Schlatter brought this change]
207
208  http: send payload when (proxy) authentication is done
209
210  The check that prevents payload from sending in case of authentication
211  doesn't check properly if the authentication is done or not.
212
213  They're cases where the proxy respond "200 OK" before sending
214  authentication challenge. This change takes care of that.
215
216  Fixes #2431
217  Closes #3669
218
219- file: fix "Checking if unsigned variable 'readcount' is less than zero."
220
221  Pointed out by codacy
222
223  Closes #3672
224
225- memdebug: log pointer before freeing its data
226
227  Coverity warned for two potentional "Use after free" cases. Both are false
228  positives because the memory wasn't used, it was only the actual pointer
229  value that was logged.
230
231  The fix still changes the order of execution to avoid the warnings.
232
233  Coverity CID 1443033 and 1443034
234
235  Closes #3671
236
237- RELEASE-NOTES: synced
238
239Marcel Raad (12 Mar 2019)
240- travis: actually use updated compiler versions
241
242  For the Linux builds, GCC 8 and 7 and clang 7 were installed, but the
243  new GCC versions were only used for the coverage build and for building
244  nghttp2, while the new clang version was not used at all.
245
246  BoringSSL needs to use the default GCC as it respects CC, but not CXX,
247  so it would otherwise pass gcc 8 options to g++ 4.8 and fail.
248
249  Also remove GCC 7, it's not needed anymore.
250
251  Ref: https://docs.travis-ci.com/user/languages/c/#c11c11-and-beyond-and-toolchain-versioning
252
253  Closes https://github.com/curl/curl/pull/3670
254
255- travis: update clang to version 7
256
257  Closes https://github.com/curl/curl/pull/3670
258
259Jay Satiro (11 Mar 2019)
260- [Andre Guibert de Bruet brought this change]
261
262  examples/externalsocket: add missing close socket calls
263
264  .. and for Windows also call WSACleanup since we call WSAStartup.
265
266  The example is to demonstrate handling the socket independently of
267  libcurl. In this case libcurl is not responsible for creating, opening
268  or closing the socket, it is handled by the application (our example).
269
270  Fixes https://github.com/curl/curl/pull/3663
271
272Daniel Stenberg (11 Mar 2019)
273- multi: removed unused code for request retries
274
275  This code was once used for the non multi-interface using code path, but
276  ever since easy_perform was turned into a wrapper around the multi
277  interface, this code path never runs.
278
279  Closes #3666
280
281Jay Satiro (11 Mar 2019)
282- doh: inherit some SSL options from user's easy handle
283
284  - Inherit SSL options for the doh handle but not SSL client certs,
285    SSL ALPN/NPN, SSL engine, SSL version, SSL issuer cert,
286    SSL pinned public key, SSL ciphers, SSL id cache setting,
287    SSL kerberos or SSL gss-api settings.
288
289  - Fix inheritance of verbose setting.
290
291  - Inherit NOSIGNAL.
292
293  There is no way for the user to set options for the doh (DNS-over-HTTPS)
294  handles and instead we inherit some options from the user's easy handle.
295
296  My thinking for the SSL options not inherited is they are most likely
297  not intended by the user for the DOH transfer. I did inherit insecure
298  because I think that should still be in control of the user.
299
300  Prior to this change doh did not work for me because CAINFO was not
301  inherited. Also verbose was set always which AFAICT was a bug (#3660).
302
303  Fixes https://github.com/curl/curl/issues/3660
304  Closes https://github.com/curl/curl/pull/3661
305
306Daniel Stenberg (9 Mar 2019)
307- test331: verify set-cookie for dotless host name
308
309  Reproduced bug #3649
310  Closes #3659
311
312- Revert "cookies: extend domain checks to non psl builds"
313
314  This reverts commit 3773de378d48b06c09931e44dca4d274d0bfdce0.
315
316  Regression shipped in 7.64.0
317  Fixes #3649
318
319- memdebug: make debug-specific functions use curl_dbg_ prefix
320
321  To not "collide" or use up the regular curl_ name space. Also makes them
322  easier to detect in helper scripts.
323
324  Closes #3656
325
326- cmdline-opts/proxytunnel.d: the option tunnnels all protocols
327
328  Clarify the language and simplify.
329
330  Reported-by: Daniel Lublin
331  Closes #3658
332
333- KNOWN_BUGS: Client cert (MTLS) issues with Schannel
334
335  Closes #3145
336
337- ROADMAP: updated to some more current things to work on
338
339- tests: fix multiple may be used uninitialized warnings
340
341- RELEASE-NOTES: synced
342
343- source: fix two 'nread' may be used uninitialized warnings
344
345  Both seem to be false positives but we don't like warnings.
346
347  Closes #3646
348
349- gopher: remove check for path == NULL
350
351  Since it can't be NULL and it makes Coverity believe we lack proper NULL
352  checks. Verified by test 659, landed in commit 15401fa886b.
353
354  Pointed out by Coverity CID 1442746.
355
356  Assisted-by: Dan Fandrich
357  Fixes #3617
358  Closes #3642
359
360- examples: only include <curl/curl.h>
361
362  That's the only public curl header we should encourage use of.
363
364  Reviewed-by: Marcel Raad
365  Closes #3645
366
367- ssh: loop the state machine if not done and not blocking
368
369  If the state machine isn't complete, didn't fail and it didn't return
370  due to blocking it can just as well loop again.
371
372  This addresses the problem with SFTP directory listings where we would
373  otherwise return back to the parent and as the multi state machine
374  doesn't have any code for using CURLM_CALL_MULTI_PERFORM for as long the
375  doing phase isn't complete, it would return out when in reality there
376  was more data to deal with.
377
378  Fixes #3506
379  Closes #3644
380
381Jay Satiro (5 Mar 2019)
382- multi: support verbose conncache closure handle
383
384  - Change closure handle to receive verbose setting from the easy handle
385    most recently added via curl_multi_add_handle.
386
387  The closure handle is a special easy handle used for closing cached
388  connections. It receives limited settings from the easy handle most
389  recently added to the multi handle. Prior to this change that did not
390  include verbose which was a problem because on connection shutdown
391  verbose mode was not acknowledged.
392
393  Ref: https://github.com/curl/curl/pull/3598
394
395  Co-authored-by: Daniel Stenberg
396
397  Closes https://github.com/curl/curl/pull/3618
398
399Daniel Stenberg (4 Mar 2019)
400- CURLU: fix NULL dereference when used over proxy
401
402  Test 659 verifies
403
404  Also fixed the test 658 name
405
406  Closes #3641
407
408- altsvc_out: check the return code from Curl_gmtime
409
410  Pointed out by Coverity, CID 1442956.
411
412  Closes #3640
413
414- docs/ALTSVC.md: docs describing the approach
415
416  Closes #3498
417
418- alt-svc: add a travis build
419
420- alt-svc: add test 355 and 356 to verify with command line curl
421
422- alt-svc: the curl command line bits
423
424- alt-svc: the libcurl bits
425
426- travis: add build using gnutls
427
428  Closes #3637
429
430- RELEASE-NOTES: synced
431
432- [Simon Legner brought this change]
433
434  scripts/completion.pl: also generate fish completion file
435
436  This is the renamed script formerly known as zsh.pl
437
438  Closes #3545
439
440- gnutls: remove call to deprecated gnutls_compression_get_name
441
442  It has been deprecated by GnuTLS since a year ago and now causes build
443  warnings.
444
445  Ref: https://gitlab.com/gnutls/gnutls/commit/b0041897d2846737f5fb0f
446  Docs: https://www.gnutls.org/manual/html_node/Compatibility-API.html
447
448  Closes #3636
449
450Jay Satiro (2 Mar 2019)
451- system_win32: move win32_init here from easy.c
452
453  .. since system_win32 is a more appropriate location for the functions
454  and to extern the globals.
455
456  Ref: https://github.com/curl/curl/commit/ca597ad#r32446578
457  Reported-by: Gisle Vanem
458
459  Closes https://github.com/curl/curl/pull/3625
460
461Daniel Stenberg (1 Mar 2019)
462- curl_easy_duphandle.3: clarify that a duped handle has no shares
463
464  Reported-by: Sara Golemon
465
466  Fixes #3592
467  Closes #3634
468
469- 10-at-a-time.c: fix too long line
470
471- [Arnaud Rebillout brought this change]
472
473  examples: various fixes in ephiperfifo.c
474
475  The main change here is the timer value that was wrong, it was given in
476  usecs (ms * 1000), while the itimerspec struct wants nsecs (ms * 1000 *
477  1000). This resulted in the callback being invoked WAY TOO OFTEN.
478
479  As a quick check you can run this command before and after applying this
480  commit:
481
482      # shell 1
483      ./ephiperfifo 2>&1 | tee ephiperfifo.log
484      # shell 2
485      echo http://hacking.elboulangero.com > hiper.fifo
486
487  Then just compare the size of the logs files.
488
489  Closes #3633
490  Fixes #3632
491  Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
492
493- urldata: simplify bytecounters
494
495  - no need to have them protocol specific
496
497  - no need to set pointers to them with the Curl_setup_transfer() call
498
499  - make Curl_setup_transfer() operate on a transfer pointer, not
500    connection
501
502  - switch some counters from long to the more proper curl_off_t type
503
504  Closes #3627
505
506- examples/10-at-a-time.c: improve readability and simplify
507
508   - use better variable names to explain their purposes
509   - convert logic to curl_multi_wait()
510
511- threaded-resolver: shutdown the resolver thread without error message
512
513  When a transfer is done, the resolver thread will be brought down. That
514  could accidentally generate an error message in the error buffer even
515  though this is not an error situationand the transfer would still return
516  OK.  An application that still reads the error buffer could find a
517  "Could not resolve host: [host name]" message there and get confused.
518
519  Reported-by: Michael Schmid
520  Fixes #3629
521  Closes #3630
522
523- [Ԝеѕ brought this change]
524
525  docs: update max-redirs.d phrasing
526
527  clarify redir - "in absurdum" doesn't seem to make sense in this context
528
529  Closes #3631
530
531- ssh: fix Condition '!status' is always true
532
533  in the same sftp_done function in both SSH backends. Simplify them
534  somewhat.
535
536  Pointed out by Codacy.
537
538  Closes #3628
539
540- test578: make it read data from the correct test
541
542- Curl_easy: remove req.maxfd - never used!
543
544  Introduced in 8b6314ccfb, but not used anymore in current code. Unclear
545  since when.
546
547  Closes #3626
548
549- http: set state.infilesize when sending formposts
550
551  Without it set, we would unwillingly triger the "HTTP error before end
552  of send, stop sending" condition even if the entire POST body had been
553  sent (since it wouldn't know the expected size) which would
554  unnecessarily log that message and close the connection when it didn't
555  have to.
556
557  Reported-by: Matt McClure
558  Bug: https://curl.haxx.se/mail/archive-2019-02/0023.html
559  Closes #3624
560
561- INSTALL: refer to the current TLS library names and configure options
562
563- FAQ: minor updates and spelling fixes
564
565- GOVERNANCE.md: minor spelling fixes
566
567- Secure Transport: no more "darwinssl"
568
569  Everyone calls it Secure Transport, now we do too.
570
571  Reviewed-by: Nick Zitzmann
572
573  Closes #3619
574
575Marcel Raad (27 Feb 2019)
576- AppVeyor: add classic MinGW build
577
578  But use the MSYS2 shell rather than the default MSYS shell because of
579  POSIX path conversion issues. Classic MinGW is only available on the
580  Visual Studio 2015 image.
581
582  Closes https://github.com/curl/curl/pull/3623
583
584- AppVeyor: add MinGW-w64 build
585
586  Add a MinGW-w64 build using CMake's MSYS Makefiles generator.
587  Use the Visual Studio 2015 image as it has GCC 8, while the
588  Visual Studio 2017 image only has GCC 7.2.
589
590  Closes https://github.com/curl/curl/pull/3623
591
592Daniel Stenberg (27 Feb 2019)
593- cookies: only save the cookie file if the engine is enabled
594
595  Follow-up to 8eddb8f4259.
596
597  If the cookieinfo pointer is NULL there really is nothing to save.
598
599  Without this fix, we got a problem when a handle was using shared object
600  with cookies and is told to "FLUSH" it to file (which worked) and then
601  the share object was removed and when the easy handle was closed just
602  afterwards it has no cookieinfo and no cookies so it decided to save an
603  empty jar (overwriting the file just flushed).
604
605  Test 1905 now verifies that this works.
606
607  Assisted-by: Michael Wallner
608  Assisted-by: Marcel Raad
609
610  Closes #3621
611
612- [DaVieS brought this change]
613
614  cacertinmem.c: use multiple certificates for loading CA-chain
615
616  Closes #3421
617
618- urldata: convert bools to bitfields and move to end
619
620  This allows the compiler to pack and align the structs better in
621  memory. For a rather feature-complete build on x86_64 Linux, gcc 8.1.2
622  makes the Curl_easy struct 4.9% smaller. From 6312 bytes to 6000.
623
624  Removed an unused struct field.
625
626  No functionality changes.
627
628  Closes #3610
629
630- [Don J Olmstead brought this change]
631
632  curl.h: use __has_declspec_attribute for shared builds
633
634  Closes #3616
635
636- curl: display --version features sorted alphabetically
637
638  Closes #3611
639
640- runtests: detect "schannel" as an alias for "winssl"
641
642  Follow-up to 180501cb02
643
644  Reported-by: Marcel Raad
645  Fixes #3609
646  Closes #3620
647
648Marcel Raad (26 Feb 2019)
649- AppVeyor: update to Visual Studio 2017
650
651  Switch all Visual Studio 2015 builds to Visual Studio 2017. It's not a
652  moving target anymore as the last update, Update 9, has been released.
653
654  Closes https://github.com/curl/curl/pull/3606
655
656- AppVeyor: switch VS 2015 builds to VS 2017 image
657
658  The Visual Studio 2017 image has Visual Studio 2015 and 2017 installed.
659
660  Closes https://github.com/curl/curl/pull/3606
661
662- AppVeyor: explicitly select worker image
663
664  Currently, we're using the default Visual Studio 2015 image for
665  everything.
666
667  Closes https://github.com/curl/curl/pull/3606
668
669Daniel Stenberg (26 Feb 2019)
670- strerror: make the strerror function use local buffers
671
672  Instead of using a fixed 256 byte buffer in the connectdata struct.
673
674  In my build, this reduces the size of the connectdata struct by 11.8%,
675  from 2160 to 1904 bytes with no functionality or performance loss.
676
677  This also fixes a bug in schannel's Curl_verify_certificate where it
678  called Curl_sspi_strerror when it should have called Curl_strerror for
679  string from GetLastError. the only effect would have been no text or the
680  wrong text being shown for the error.
681
682  Co-authored-by: Jay Satiro
683
684  Closes #3612
685
686- [Michael Wallner brought this change]
687
688  cookies: fix NULL dereference if flushing cookies with no CookieInfo set
689
690  Regression brought by a52e46f3900fb0 (shipped in 7.63.0)
691
692  Closes #3613
693
694Marcel Raad (26 Feb 2019)
695- AppVeyor: re-enable test 500
696
697  It's passing now.
698
699  Closes https://github.com/curl/curl/pull/3615
700
701- AppVeyor: remove redundant builds
702
703  Remove the Visual Studio 2012 and 2013 builds as they add little value.
704
705  Ref: https://github.com/curl/curl/pull/3606
706  Closes https://github.com/curl/curl/pull/3614
707
708Daniel Stenberg (25 Feb 2019)
709- RELEASE-NOTES: synced
710
711- [Bernd Mueller brought this change]
712
713  OpenSSL: add support for TLS ASYNC state
714
715  Closes #3591
716
717Jay Satiro (25 Feb 2019)
718- [Michael Felt brought this change]
719
720  acinclude: add additional libraries to check for LDAP support
721
722  - Add an additional check for LDAP that also checks for OpenSSL since
723    on AIX those libraries may be required to link LDAP properly.
724
725  Fixes https://github.com/curl/curl/issues/3595
726  Closes https://github.com/curl/curl/pull/3596
727
728- [georgeok brought this change]
729
730  schannel: support CALG_ECDH_EPHEM algorithm
731
732  Add support for Ephemeral elliptic curve Diffie-Hellman key exchange
733  algorithm option when selecting ciphers. This became available on the
734  Win10 SDK.
735
736  Closes https://github.com/curl/curl/pull/3608
737
738Daniel Stenberg (24 Feb 2019)
739- multi: call multi_done on connect timeouts
740
741  Failing to do so would make the CURLINFO_TOTAL_TIME timeout to not get
742  updated correctly and could end up getting reported to the application
743  completely wrong (way too small).
744
745  Reported-by: accountantM on github
746  Fixes #3602
747  Closes #3605
748
749- examples: remove recursive calls to curl_multi_socket_action
750
751  From within the timer callbacks. Recursive is problematic for several
752  reasons. They should still work, but this way the examples and the
753  documentation becomes simpler. I don't think we need to encourage
754  recursive calls.
755
756  Discussed in #3537
757  Closes #3601
758
759Marcel Raad (23 Feb 2019)
760- configure: remove CURL_CHECK_FUNC_FDOPEN call
761
762  The macro itself has been removed in commit
763  11974ac859c5d82def59e837e0db56fef7f6794e.
764
765  Closes https://github.com/curl/curl/pull/3604
766
767Daniel Stenberg (23 Feb 2019)
768- wolfssl: stop custom-adding curves
769
770  since wolfSSL PR https://github.com/wolfSSL/wolfssl/pull/717 (shipped in
771  wolfSSL 3.10.2 and later) it sends these curves by default already.
772
773  Pointed-out-by: David Garske
774
775  Closes #3599
776
777- configure: remove the unused fdopen macro
778
779  and the two remaining #ifdefs for it
780
781  Closes #3600
782
783Jay Satiro (22 Feb 2019)
784- url: change conn shutdown order to unlink data as last step
785
786  - Split off connection shutdown procedure from Curl_disconnect into new
787    function conn_shutdown.
788
789  - Change the shutdown procedure to close the sockets before
790    disassociating the transfer.
791
792  Prior to this change the sockets were closed after disassociating the
793  transfer so SOCKETFUNCTION wasn't called since the transfer was already
794  disassociated. That likely came about from recent work started in
795  Jan 2019 (#3442) to separate transfers from connections.
796
797  Bug: https://curl.haxx.se/mail/lib-2019-02/0101.html
798  Reported-by: Pavel Löbl
799
800  Closes https://github.com/curl/curl/issues/3597
801  Closes https://github.com/curl/curl/pull/3598
802
803Marcel Raad (22 Feb 2019)
804- Fix strict-prototypes GCC warning
805
806  As seen in the MinGW autobuilds. Caused by commit
807  f26bc29cfec0be84c67cf74065cf8e5e78fd68b7.
808
809Dan Fandrich (21 Feb 2019)
810- tests: Fixed XML validation errors in some test files.
811
812Daniel Stenberg (20 Feb 2019)
813- TODO: Allow SAN names in HTTP/2 server push
814
815  Suggested-by: Nicolas Grekas
816
817- RELEASE-NOTES: synced
818
819- curl: remove MANUAL from -M output
820
821  ... and remove it from the dist tarball. It has served its time, it
822  barely gets updated anymore and "everything curl" is now convering all
823  this document once tried to include, and does it more and better.
824
825  In the compressed scenario, this removes ~15K data from the binary,
826  which is 25% of the -M output.
827
828  It remains in the git repo for now for as long as the web site builds a
829  page using that as source. It renders poorly on the site (especially for
830  mobile users) so its not even good there.
831
832  Closes #3587
833
834- http2: verify :athority in push promise requests
835
836  RFC 7540 says we should verify that the push is for an "authoritative"
837  server. We make sure of this by only allowing push with an :athority
838  header that matches the host that was asked for in the URL.
839
840  Fixes #3577
841  Reported-by: Nicolas Grekas
842  Bug: https://curl.haxx.se/mail/lib-2019-02/0057.html
843  Closes #3581
844
845- singlesocket: fix the 'sincebefore' placement
846
847  The variable wasn't properly reset within the loop and thus could remain
848  set for sockets that hadn't been set before and miss notifying the app.
849
850  This is a follow-up to 4c35574 (shipped in curl 7.64.0)
851
852  Reported-by: buzo-ffm on github
853  Detected-by: Jan Alexander Steffens
854  Fixes #3585
855  Closes #3589
856
857- connection: never reuse CONNECT_ONLY conections
858
859  and make CONNECT_ONLY conections never reuse any existing ones either.
860
861  Reported-by: Pavel Löbl
862  Bug: https://curl.haxx.se/mail/lib-2019-02/0064.html
863  Closes #3586
864
865Patrick Monnerat (19 Feb 2019)
866- cli tool: fix mime post with --disable-libcurl-option configure option
867
868  Reported-by: Marcel Raad
869  Fixes #3576
870  Closes #3583
871
872Daniel Stenberg (19 Feb 2019)
873- x509asn1: cleanup and unify code layout
874
875  - rename 'n' to buflen in functions, and use size_t for them. Don't pass
876    in negative buffer lengths.
877
878  - move most function comments to above the function starts like we use
879    to
880
881  - remove several unnecessary typecasts (especially of NULL)
882
883  Reviewed-by: Patrick Monnerat
884  Closes #3582
885
886- curl_multi_remove_handle.3: use at any time, just not from within callbacks
887
888  [ci skip]
889
890- http: make adding a blank header thread-safe
891
892  Previously the function would edit the provided header in-place when a
893  semicolon is used to signify an empty header. This made it impossible to
894  use the same set of custom headers in multiple threads simultaneously.
895
896  This approach now makes a local copy when it needs to edit the string.
897
898  Reported-by: d912e3 on github
899  Fixes #3578
900  Closes #3579
901
902- unit1651: survive curl_easy_init() fails
903
904- [Frank Gevaerts brought this change]
905
906  rand: Fix a mismatch between comments in source and header.
907
908  Reported-by: Björn Stenberg <bjorn@haxx.se>
909  Closes #3584
910
911Patrick Monnerat (18 Feb 2019)
912- x509asn1: replace single char with an array
913
914  Although safe in this context, using a single char as an array may
915  cause invalid accesses to adjacent memory locations.
916
917  Detected by Coverity.
918
919Daniel Stenberg (18 Feb 2019)
920- examples/http2-serverpush: add some sensible error checks
921
922  To avoid NULL pointer dereferences etc in the case of problems.
923
924  Closes #3580
925
926Jay Satiro (18 Feb 2019)
927- easy: fix win32 init to work without CURL_GLOBAL_WIN32
928
929  - Change the behavior of win32_init so that the required initialization
930    procedures are not affected by CURL_GLOBAL_WIN32 flag.
931
932  libcurl via curl_global_init supports initializing for win32 with an
933  optional flag CURL_GLOBAL_WIN32, which if omitted was meant to stop
934  Winsock initialization. It did so internally by skipping win32_init()
935  when that flag was set. Since then win32_init() has been expanded to
936  include required initialization routines that are separate from
937  Winsock and therefore must be called in all cases. This commit fixes
938  it so that CURL_GLOBAL_WIN32 only controls the optional win32
939  initialization (which is Winsock initialization, according to our doc).
940
941  The only users affected by this change are those that don't pass
942  CURL_GLOBAL_WIN32 to curl_global_init. For them this commit removes the
943  risk of a potential crash.
944
945  Ref: https://github.com/curl/curl/pull/3573
946
947  Fixes https://github.com/curl/curl/issues/3313
948  Closes https://github.com/curl/curl/pull/3575
949
950Daniel Gustafsson (17 Feb 2019)
951- cookie: Add support for cookie prefixes
952
953  The draft-ietf-httpbis-rfc6265bis-02 draft, specify a set of prefixes
954  and how they should affect cookie initialization, which has been
955  adopted by the major browsers. This adds support for the two prefixes
956  defined, __Host- and __Secure, and updates the testcase with the
957  supplied examples from the draft.
958
959  Closes #3554
960  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
961
962- mbedtls: release sessionid resources on error
963
964  If mbedtls_ssl_get_session() fails, it may still have allocated
965  memory that needs to be freed to avoid leaking. Call the library
966  API function to release session resources on this errorpath as
967  well as on Curl_ssl_addsessionid() errors.
968
969  Closes: #3574
970  Reported-by: Michał Antoniak <M.Antoniak@posnet.com>
971  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
972
973Patrick Monnerat (16 Feb 2019)
974- cli tool: refactor encoding conversion sequence for switch case fallthrough.
975
976- version.c: silent scan-build even when librtmp is not enabled
977
978Daniel Stenberg (15 Feb 2019)
979- RELEASE-NOTES: synced
980
981- Curl_now: figure out windows version in win32_init
982
983  ... and avoid use of static variables that aren't thread safe.
984
985  Fixes regression from e9ababd4f5a (present in the 7.64.0 release)
986
987  Reported-by: Paul Groke
988  Fixes #3572
989  Closes #3573
990
991Marcel Raad (15 Feb 2019)
992- unit1307: just fail without FTP support
993
994  I missed to check this in with commit
995  71786c0505926aaf7e9b2477b2fb7ee16a915ec6, which only disabled the test.
996  This fixes the actual linker error.
997
998  Closes https://github.com/curl/curl/pull/3568
999
1000Daniel Stenberg (15 Feb 2019)
1001- travis: enable valgrind for the iconv tests too
1002
1003  Closes #3571
1004
1005- travis: add scan-build
1006
1007  Closes #3564
1008
1009- examples/sftpuploadresume: Value stored to 'result' is never read
1010
1011  Detected by scan-build
1012
1013- examples/http2-upload: cleaned up
1014
1015  Fix scan-build warnings, no globals, no silly handle scan. Also remove
1016  handles from the multi before cleaning up.
1017
1018- examples/http2-download: cleaned up
1019
1020  To avoid scan-build warnings and global variables.
1021
1022- examples/postinmemory: Potential leak of memory pointed to by 'chunk.memory'
1023
1024  Detected by scan-build
1025
1026- examples/httpcustomheader: Value stored to 'res' is never read
1027
1028  Detected by scan-build
1029
1030- examples: remove superfluous null-pointer checks
1031
1032  in ftpget, ftpsget and sftpget, so that scan-build stops warning for
1033  potential NULL pointer dereference below!
1034
1035  Detected by scan-build
1036
1037- strip_trailing_dot: make sure NULL is never used for strlen
1038
1039  scan-build warning: Null pointer passed as an argument to a 'nonnull'
1040  parameter
1041
1042- [Jay Satiro brought this change]
1043
1044  connection_check: restore original conn->data after the check
1045
1046  - Save the original conn->data before it's changed to the specified
1047    data transfer for the connection check and then restore it afterwards.
1048
1049  This is a follow-up to 38d8e1b 2019-02-11.
1050
1051  History:
1052
1053  It was discovered a month ago that before checking whether to extract a
1054  dead connection that that connection should be associated with a "live"
1055  transfer for the check (ie original conn->data ignored and set to the
1056  passed in data). A fix was landed in 54b201b which did that and also
1057  cleared conn->data after the check. The original conn->data was not
1058  restored, so presumably it was thought that a valid conn->data was no
1059  longer needed.
1060
1061  Several days later it was discovered that a valid conn->data was needed
1062  after the check and follow-up fix was landed in bbae24c which partially
1063  reverted the original fix and attempted to limit the scope of when
1064  conn->data was changed to only when pruning dead connections. In that
1065  case conn->data was not cleared and the original conn->data not
1066  restored.
1067
1068  A month later it was discovered that the original fix was somewhat
1069  correct; a "live" transfer is needed for the check in all cases
1070  because original conn->data could be null which could cause a bad deref
1071  at arbitrary points in the check. A fix was landed in 38d8e1b which
1072  expanded the scope to all cases. conn->data was not cleared and the
1073  original conn->data not restored.
1074
1075  A day later it was discovered that not restoring the original conn->data
1076  may lead to busy loops in applications that use the event interface, and
1077  given this observation it's a pretty safe assumption that there is some
1078  code path that still needs the original conn->data. This commit is the
1079  follow-up fix for that, it restores the original conn->data after the
1080  connection check.
1081
1082  Assisted-by: tholin@users.noreply.github.com
1083  Reported-by: tholin@users.noreply.github.com
1084
1085  Fixes https://github.com/curl/curl/issues/3542
1086  Closes #3559
1087
1088- memdebug: bring back curl_mark_sclose
1089
1090  Used by debug builds with NSS.
1091
1092  Reverted from 05b100aee247bb
1093
1094Patrick Monnerat (14 Feb 2019)
1095- transfer.c: do not compute length of undefined hex buffer.
1096
1097  On non-ascii platforms, the chunked hex header was measured for char code
1098  conversion length, even for chunked trailers that do not have an hex header.
1099  In addition, the efective length is already known: use it.
1100  Since the hex length can be zero, only convert if needed.
1101
1102  Reported by valgrind.
1103
1104Daniel Stenberg (14 Feb 2019)
1105- KNOWN_BUGS: Cannot compile against a static build of OpenLDAP
1106
1107  Closes #2367
1108
1109Patrick Monnerat (14 Feb 2019)
1110- x509asn1: "Dereference of null pointer"
1111
1112  Detected by scan-build (false positive).
1113
1114Daniel Stenberg (14 Feb 2019)
1115- configure: show features as well in the final summary
1116
1117  Closes #3569
1118
1119- KNOWN_BUGS: curl compiled on OSX 10.13 failed to run on OSX 10.10
1120
1121  Closes #2905
1122
1123- KNOWN_BUGS: Deflate error after all content was received
1124
1125  Closes #2719
1126
1127- gssapi: fix deprecated header warnings
1128
1129  Heimdal includes on FreeBSD spewed out lots of them. Less so now.
1130
1131  Closes #3566
1132
1133- TODO: Upgrade to websockets
1134
1135  Closes #3523
1136
1137- TODO: cmake test suite improvements
1138
1139  Closes #3109
1140
1141Patrick Monnerat (13 Feb 2019)
1142- curl: "Dereference of null pointer"
1143
1144  Rephrase to satisfy scan-build.
1145
1146Marcel Raad (13 Feb 2019)
1147- unit1307: require FTP support
1148
1149  This test doesn't link without FTP support after
1150  fc7ab4835b5fd09d0a6f57000633bb6bb6edfda1, which made Curl_fnmatch
1151  unavailable without FTP support.
1152
1153  Closes https://github.com/curl/curl/pull/3565
1154
1155Daniel Stenberg (13 Feb 2019)
1156- TODO: TFO support on Windows
1157
1158  Nobody works on this now.
1159
1160  Closes #3378
1161
1162- multi: Dereference of null pointer
1163
1164  Mostly a false positive, but this makes the code easier to read anyway.
1165
1166  Detected by scan-build.
1167
1168  Closes #3563
1169
1170- urlglob: Argument with 'nonnull' attribute passed null
1171
1172  Detected by scan-build.
1173
1174Jay Satiro (12 Feb 2019)
1175- schannel: restore some debug output but only for debug builds
1176
1177  Follow-up to 84c10dc from earlier today which wrapped a lot of the noisy
1178  debug output in DEBUGF but omitted a few lines.
1179
1180  Ref: https://github.com/curl/curl/commit/84c10dc#r32292900
1181
1182- examples/crawler: Fix the Accept-Encoding setting
1183
1184  - Pass an empty string to CURLOPT_ACCEPT_ENCODING to use the default
1185    supported encodings.
1186
1187  Prior to this change the specific encodings of gzip and deflate were set
1188  but there's no guarantee they'd be supported by the user's libcurl.
1189
1190Daniel Stenberg (12 Feb 2019)
1191- mime: put the boundary buffer into the curl_mime struct
1192
1193  ... instead of allocating it separately and point to it. It is
1194  fixed-size and always used for each part.
1195
1196  Closes #3561
1197
1198- schannel: be quiet
1199
1200  Convert numerous infof() calls into debug-build only messages since they
1201  are annoyingly verbose for regular applications. Removed a few.
1202
1203  Bug: https://curl.haxx.se/mail/lib-2019-02/0027.html
1204  Reported-by: Volker Schmid
1205  Closes #3552
1206
1207- [Romain Geissler brought this change]
1208
1209  Curl_resolv: fix a gcc -Werror=maybe-uninitialized warning
1210
1211  Closes #3562
1212
1213- http2: multi_connchanged() moved from multi.c, only used for h2
1214
1215  Closes #3557
1216
1217- curl: "Function call argument is an uninitialized value"
1218
1219  Follow-up to cac0e4a6ad14b42471eb
1220
1221  Detected by scan-build
1222  Closes #3560
1223
1224- pretransfer: don't strlen() POSTFIELDS set for GET requests
1225
1226  ... since that data won't be used in the request anyway.
1227
1228  Fixes #3548
1229  Reported-by: Renaud Allard
1230  Close #3549
1231
1232- multi: remove verbose "Expire in" ... messages
1233
1234  Reported-by: James Brown
1235  Bug: https://curl.haxx.se/mail/archive-2019-02/0013.html
1236  Closes #3558
1237
1238- mbedtls: make it build even if MBEDTLS_VERSION_C isn't set
1239
1240  Reported-by: MAntoniak on github
1241  Fixes #3553
1242  Closes #3556
1243
1244Daniel Gustafsson (12 Feb 2019)
1245- non-ascii.c: fix typos in comments
1246
1247  Fix two occurrences of s/convers/converts/ spotted while reading code.
1248
1249Daniel Stenberg (12 Feb 2019)
1250- fnmatch: disable if FTP is disabled
1251
1252  Closes #3551
1253
1254- curl_path: only enabled for SSH builds
1255
1256- [Frank Gevaerts brought this change]
1257
1258  tests: add stderr comparison to the test suite
1259
1260  The code is more or less copied from the stdout comparison code, maybe
1261  some better reuse is possible.
1262
1263  test 1457 is adjusted to make the output actually match (by using --silent)
1264  test 506 used <stderr> without actually needing it, so that <stderr> block is removed
1265
1266  Closes #3536
1267
1268Patrick Monnerat (11 Feb 2019)
1269- cli tool: do not use mime.h private structures.
1270
1271  Option -F generates an intermediate representation of the mime structure
1272  that is used later to create the libcurl mime structure and generate
1273  the --libcurl statements.
1274
1275  Reported-by: Daniel Stenberg
1276  Fixes #3532
1277  Closes #3546
1278
1279Daniel Stenberg (11 Feb 2019)
1280- curlver: bump to 7.64.1-dev
1281
1282- RELEASE-NOTES: synced
1283
1284  and bump the version in progress to 7.64.1. If we merge any "change"
1285  before the cut-off date, we update again.
1286
1287Daniel Gustafsson (11 Feb 2019)
1288- curl: follow-up to 3f16990ec84
1289
1290  Commit 3f16990ec84cc4b followed-up a bug in b49652ac66cc0 but was
1291  inadvertently introducing a new bug in the ternary expression.
1292
1293  Close #3555
1294  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1295
1296- dns: release sharelock as soon as possible
1297
1298  There is no benefit to holding the data sharelock when freeing the
1299  addrinfo in case it fails, so ensure releaseing it as soon as we can
1300  rather than holding on to it. This also aligns the code with other
1301  consumers of sharelocks.
1302
1303  Closes #3516
1304  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1305
1306Daniel Stenberg (11 Feb 2019)
1307- curl: follow-up to b49652ac66cc0
1308
1309  On FreeBSD, return non-zero on error otherwise zero.
1310
1311  Reported-by: Marcel Raad
1312
1313- multi: (void)-prefix when ignoring return values
1314
1315  ... and added braces to two function calls which fixes warnings if they
1316  are replace by empty macros at build-time.
1317
1318- curl: fix FreeBSD compiler warning in the --xattr code
1319
1320  Closes #3550
1321
1322- connection_check: set ->data to the transfer doing the check
1323
1324  The http2 code for connection checking needs a transfer to use. Make
1325  sure a working one is set before handler->connection_check() is called.
1326
1327  Reported-by: jnbr on github
1328  Fixes #3541
1329  Closes #3547
1330
1331- hostip: make create_hostcache_id avoid alloc + free
1332
1333  Closes #3544
1334
1335- scripts/singleuse: script to use to track single-use functions
1336
1337  That is functions that are declared global but are not used from outside
1338  of the file in which it is declared. Such functions should be made
1339  static or even at times be removed.
1340
1341  It also verifies that all used curl_ prefixed functions are "blessed"
1342
1343  Closes #3538
1344
1345- cleanup: make local functions static
1346
1347  urlapi: turn three local-only functions into statics
1348
1349  conncache: make conncache_find_first_connection static
1350
1351  multi: make detach_connnection static
1352
1353  connect: make getaddressinfo static
1354
1355  curl_ntlm_core: make hmac_md5 static
1356
1357  http2: make two functions static
1358
1359  http: make http_setup_conn static
1360
1361  connect: make tcpnodelay static
1362
1363  tests: make UNITTEST a thing to mark functions with, so they can be static for
1364  normal builds and non-static for unit test builds
1365
1366  ... and mark Curl_shuffle_addr accordingly.
1367
1368  url: make up_free static
1369
1370  setopt: make vsetopt static
1371
1372  curl_endian: make write32_le static
1373
1374  rtsp: make rtsp_connisdead static
1375
1376  warnless: remove unused functions
1377
1378  memdebug: remove one unused function, made another static
1379
1380Dan Fandrich (10 Feb 2019)
1381- cirrus: Added FreeBSD builds using Cirrus CI.
1382
1383  The build logs will be at https://cirrus-ci.com/github/curl/curl
1384
1385  Some tests are currently failing and so disabled for now. The SSH server
1386  isn't starting for the SSH tests due to unsupported options used in its
1387  config file. The DICT server also is failing on startup.
1388
1389Daniel Stenberg (9 Feb 2019)
1390- url/idnconvert: remove scan for <= 32 ascii values
1391
1392  The check was added back in fa939220df before the URL parser would catch
1393  these problems and therefore these will never trigger now.
1394
1395  Closes #3539
1396
1397- urlapi: reduce variable scope, remove unreachable 'break'
1398
1399  Both nits pointed out by codacy.com
1400
1401  Closes #3540
1402
1403Alessandro Ghedini (7 Feb 2019)
1404- zsh.pl: escape ':' character
1405
1406  ':' is interpreted as separator by zsh, so if used as part of the argument
1407  or option's description it needs to be escaped.
1408
1409  The problem can be reproduced as follows:
1410
1411   % curl --reso<TAB>
1412   % curl -E <TAB>
1413
1414  Bug: https://bugs.debian.org/921452
1415
1416- zsh.pl: update regex to better match curl -h output
1417
1418  The current regex fails to match '<...>' arguments properly (e.g. those
1419  with spaces in them), which causes an completion script with wrong
1420  descriptions for some options.
1421
1422  Here's a diff of the generated completion script, comparing the previous
1423  version to the one with this fix:
1424
1425  --- /usr/share/zsh/vendor-completions/_curl     2019-01-15 20:47:40.000000000 +0000
1426  +++ _curl       2019-02-05 20:57:29.453349040 +0000
1427  @@ -9,48 +9,48 @@
1428
1429   _arguments -C -S \
1430     --happy-eyeballs-timeout-ms'[How long to wait in milliseconds for IPv6 before trying IPv4]':'<milliseconds>' \
1431  +  --resolve'[Resolve the host+port to this address]':'<host:port:address[,address]...>' \
1432     {-c,--cookie-jar}'[Write cookies to <filename> after operation]':'<filename>':_files \
1433     {-D,--dump-header}'[Write the received headers to <filename>]':'<filename>':_files \
1434     {-y,--speed-time}'[Trigger '\''speed-limit'\'' abort after this time]':'<seconds>' \
1435     --proxy-cacert'[CA certificate to verify peer against for proxy]':'<file>':_files \
1436  -  --tls13-ciphers'[of TLS 1.3 ciphersuites> TLS 1.3 cipher suites to use]':'<list' \
1437  +  --tls13-ciphers'[TLS 1.3 cipher suites to use]':'<list of TLS 1.3 ciphersuites>' \
1438     {-E,--cert}'[Client certificate file and password]':'<certificate[:password]>' \
1439     --libcurl'[Dump libcurl equivalent code of this command line]':'<file>':_files \
1440     --proxy-capath'[CA directory to verify peer against for proxy]':'<dir>':_files \
1441  -  --proxy-negotiate'[HTTP Negotiate (SPNEGO) authentication on the proxy]':'Use' \
1442     --proxy-pinnedpubkey'[FILE/HASHES public key to verify proxy with]':'<hashes>' \
1443     --crlfile'[Get a CRL list in PEM format from the given file]':'<file>':_files \
1444  -  --proxy-insecure'[HTTPS proxy connections without verifying the proxy]':'Do' \
1445  -  --proxy-ssl-allow-beast'[security flaw for interop for HTTPS proxy]':'Allow' \
1446  +  --proxy-negotiate'[Use HTTP Negotiate (SPNEGO) authentication on the proxy]' \
1447     --abstract-unix-socket'[Connect via abstract Unix domain socket]':'<path>' \
1448     --pinnedpubkey'[FILE/HASHES Public key to verify peer against]':'<hashes>' \
1449  +  --proxy-insecure'[Do HTTPS proxy connections without verifying the proxy]' \
1450     --proxy-pass'[Pass phrase for the private key for HTTPS proxy]':'<phrase>' \
1451  +  --proxy-ssl-allow-beast'[Allow security flaw for interop for HTTPS proxy]' \
1452     {-p,--proxytunnel}'[Operate through an HTTP proxy tunnel (using CONNECT)]' \
1453     --socks5-hostname'[SOCKS5 proxy, pass host name to proxy]':'<host[:port]>' \
1454     --proto-default'[Use PROTOCOL for any URL missing a scheme]':'<protocol>' \
1455  -  --proxy-tls13-ciphers'[list> TLS 1.3 proxy cipher suites]':'<ciphersuite' \
1456  +  --proxy-tls13-ciphers'[TLS 1.3 proxy cipher suites]':'<ciphersuite list>' \
1457     --socks5-gssapi-service'[SOCKS5 proxy service name for GSS-API]':'<name>' \
1458     --ftp-alternative-to-user'[String to replace USER \[name\]]':'<command>' \
1459  -  --ftp-ssl-control'[SSL/TLS for FTP login, clear for transfer]':'Require' \
1460     {-T,--upload-file}'[Transfer local FILE to destination]':'<file>':_files \
1461     --local-port'[Force use of RANGE for local port numbers]':'<num/range>' \
1462     --proxy-tlsauthtype'[TLS authentication type for HTTPS proxy]':'<type>' \
1463     {-R,--remote-time}'[Set the remote file'\''s time on the local output]' \
1464  -  --retry-connrefused'[on connection refused (use with --retry)]':'Retry' \
1465  -  --suppress-connect-headers'[proxy CONNECT response headers]':'Suppress' \
1466  -  {-j,--junk-session-cookies}'[session cookies read from file]':'Ignore' \
1467  -  --location-trusted'[--location, and send auth to other hosts]':'Like' \
1468  +  --ftp-ssl-control'[Require SSL/TLS for FTP login, clear for transfer]' \
1469     --proxy-cert-type'[Client certificate type for HTTPS proxy]':'<type>' \
1470     {-O,--remote-name}'[Write output to a file named as the remote file]' \
1471  +  --retry-connrefused'[Retry on connection refused (use with --retry)]' \
1472  +  --suppress-connect-headers'[Suppress proxy CONNECT response headers]' \
1473     --trace-ascii'[Like --trace, but without hex output]':'<file>':_files \
1474     --connect-timeout'[Maximum time allowed for connection]':'<seconds>' \
1475     --expect100-timeout'[How long to wait for 100-continue]':'<seconds>' \
1476     {-g,--globoff}'[Disable URL sequences and ranges using {} and \[\]]' \
1477  +  {-j,--junk-session-cookies}'[Ignore session cookies read from file]' \
1478     {-m,--max-time}'[Maximum time allowed for the transfer]':'<seconds>' \
1479     --dns-ipv4-addr'[IPv4 address to use for DNS requests]':'<address>' \
1480     --dns-ipv6-addr'[IPv6 address to use for DNS requests]':'<address>' \
1481  -  --ignore-content-length'[the size of the remote resource]':'Ignore' \
1482     {-k,--insecure}'[Allow insecure server connections when using SSL]' \
1483  +  --location-trusted'[Like --location, and send auth to other hosts]' \
1484     --mail-auth'[Originator address of the original email]':'<address>' \
1485     --noproxy'[List of hosts which do not use proxy]':'<no-proxy-list>' \
1486     --proto-redir'[Enable/disable PROTOCOLS on redirect]':'<protocols>' \
1487  @@ -62,18 +62,19 @@
1488     --socks5-basic'[Enable username/password auth for SOCKS5 proxies]' \
1489     --cacert'[CA certificate to verify peer against]':'<file>':_files \
1490     {-H,--header}'[Pass custom header(s) to server]':'<header/@file>' \
1491  +  --ignore-content-length'[Ignore the size of the remote resource]' \
1492     {-i,--include}'[Include protocol response headers in the output]' \
1493     --proxy-header'[Pass custom header(s) to proxy]':'<header/@file>' \
1494     --unix-socket'[Connect through this Unix domain socket]':'<path>' \
1495     {-w,--write-out}'[Use output FORMAT after completion]':'<format>' \
1496  -  --http2-prior-knowledge'[HTTP 2 without HTTP/1.1 Upgrade]':'Use' \
1497     {-o,--output}'[Write to file instead of stdout]':'<file>':_files \
1498  -  {-J,--remote-header-name}'[the header-provided filename]':'Use' \
1499  +  --preproxy'[\[protocol://\]host\[:port\] Use this proxy first]' \
1500     --socks4a'[SOCKS4a proxy on given host + port]':'<host[:port]>' \
1501     {-Y,--speed-limit}'[Stop transfers slower than this]':'<speed>' \
1502     {-z,--time-cond}'[Transfer based on a time condition]':'<time>' \
1503     --capath'[CA directory to verify peer against]':'<dir>':_files \
1504     {-f,--fail}'[Fail silently (no output at all) on HTTP errors]' \
1505  +  --http2-prior-knowledge'[Use HTTP 2 without HTTP/1.1 Upgrade]' \
1506     --proxy-tlspassword'[TLS password for HTTPS proxy]':'<string>' \
1507     {-U,--proxy-user}'[Proxy user and password]':'<user:password>' \
1508     --proxy1.0'[Use HTTP/1.0 proxy on given port]':'<host[:port]>' \
1509  @@ -81,52 +82,49 @@
1510     {-A,--user-agent}'[Send User-Agent <name> to server]':'<name>' \
1511     --egd-file'[EGD socket path for random data]':'<file>':_files \
1512     --fail-early'[Fail on first transfer error, do not continue]' \
1513  -  --haproxy-protocol'[HAProxy PROXY protocol v1 header]':'Send' \
1514  -  --preproxy'[Use this proxy first]':'[protocol://]host[:port]' \
1515  +  {-J,--remote-header-name}'[Use the header-provided filename]' \
1516     --retry-max-time'[Retry only within this period]':'<seconds>' \
1517     --socks4'[SOCKS4 proxy on given host + port]':'<host[:port]>' \
1518     --socks5'[SOCKS5 proxy on given host + port]':'<host[:port]>' \
1519  -  --socks5-gssapi-nec'[with NEC SOCKS5 server]':'Compatibility' \
1520  -  --ssl-allow-beast'[security flaw to improve interop]':'Allow' \
1521     --cert-status'[Verify the status of the server certificate]' \
1522  -  --ftp-create-dirs'[the remote dirs if not present]':'Create' \
1523     {-:,--next}'[Make next URL use its separate set of options]' \
1524     --proxy-key-type'[Private key file type for proxy]':'<type>' \
1525  -  --remote-name-all'[the remote file name for all URLs]':'Use' \
1526     {-X,--request}'[Specify request command to use]':'<command>' \
1527     --retry'[Retry request if transient problems occur]':'<num>' \
1528  -  --ssl-no-revoke'[cert revocation checks (WinSSL)]':'Disable' \
1529     --cert-type'[Certificate file type (DER/PEM/ENG)]':'<type>' \
1530     --connect-to'[Connect to host]':'<HOST1:PORT1:HOST2:PORT2>' \
1531     --create-dirs'[Create necessary local directory hierarchy]' \
1532  +  --haproxy-protocol'[Send HAProxy PROXY protocol v1 header]' \
1533     --max-redirs'[Maximum number of redirects allowed]':'<num>' \
1534     {-n,--netrc}'[Must read .netrc for user name and password]' \
1535  +  {-x,--proxy}'[\[protocol://\]host\[:port\] Use this proxy]' \
1536     --proxy-crlfile'[Set a CRL list for proxy]':'<file>':_files \
1537     --sasl-ir'[Enable initial response in SASL authentication]' \
1538  -  --socks5-gssapi'[GSS-API auth for SOCKS5 proxies]':'Enable' \
1539  +  --socks5-gssapi-nec'[Compatibility with NEC SOCKS5 server]' \
1540  +  --ssl-allow-beast'[Allow security flaw to improve interop]' \
1541  +  --ftp-create-dirs'[Create the remote dirs if not present]' \
1542     --interface'[Use network INTERFACE (or address)]':'<name>' \
1543     --key-type'[Private key file type (DER/PEM/ENG)]':'<type>' \
1544     --netrc-file'[Specify FILE for netrc]':'<filename>':_files \
1545     {-N,--no-buffer}'[Disable buffering of the output stream]' \
1546     --proxy-service-name'[SPNEGO proxy service name]':'<name>' \
1547  -  --styled-output'[styled output for HTTP headers]':'Enable' \
1548  +  --remote-name-all'[Use the remote file name for all URLs]' \
1549  +  --ssl-no-revoke'[Disable cert revocation checks (WinSSL)]' \
1550     --max-filesize'[Maximum file size to download]':'<bytes>' \
1551     --negotiate'[Use HTTP Negotiate (SPNEGO) authentication]' \
1552     --no-keepalive'[Disable TCP keepalive on the connection]' \
1553     {-#,--progress-bar}'[Display transfer progress as a bar]' \
1554  -  {-x,--proxy}'[Use this proxy]':'[protocol://]host[:port]' \
1555  -  --proxy-anyauth'[any proxy authentication method]':'Pick' \
1556     {-Q,--quote}'[Send command(s) to server before transfer]' \
1557  -  --request-target'[the target for this request]':'Specify' \
1558  +  --socks5-gssapi'[Enable GSS-API auth for SOCKS5 proxies]' \
1559     {-u,--user}'[Server user and password]':'<user:password>' \
1560     {-K,--config}'[Read config from a file]':'<file>':_files \
1561     {-C,--continue-at}'[Resumed transfer offset]':'<offset>' \
1562     --data-raw'[HTTP POST data, '\''@'\'' allowed]':'<data>' \
1563  -  --disallow-username-in-url'[username in url]':'Disallow' \
1564     --krb'[Enable Kerberos with security <level>]':'<level>' \
1565     --proxy-ciphers'[SSL ciphers to use for proxy]':'<list>' \
1566     --proxy-digest'[Use Digest authentication on the proxy]' \
1567     --proxy-tlsuser'[TLS username for HTTPS proxy]':'<name>' \
1568  +  --styled-output'[Enable styled output for HTTP headers]' \
1569     {-b,--cookie}'[Send cookies from string/file]':'<data>' \
1570     --data-urlencode'[HTTP POST data url encoded]':'<data>' \
1571     --delegation'[GSS-API delegation permission]':'<LEVEL>' \
1572  @@ -134,7 +132,10 @@
1573     --post301'[Do not switch to GET after following a 301]' \
1574     --post302'[Do not switch to GET after following a 302]' \
1575     --post303'[Do not switch to GET after following a 303]' \
1576  +  --proxy-anyauth'[Pick any proxy authentication method]' \
1577  +  --request-target'[Specify the target for this request]' \
1578     --trace-time'[Add time stamps to trace/verbose output]' \
1579  +  --disallow-username-in-url'[Disallow username in url]' \
1580     --dns-servers'[DNS server addrs to use]':'<addresses>' \
1581     {-G,--get}'[Put the post data in the URL and use GET]' \
1582     --limit-rate'[Limit transfer speed to RATE]':'<speed>' \
1583  @@ -148,21 +149,21 @@
1584     --metalink'[Process given URLs as metalink XML file]' \
1585     --tr-encoding'[Request compressed transfer encoding]' \
1586     --xattr'[Store metadata in extended file attributes]' \
1587  -  --ftp-skip-pasv-ip'[the IP address for PASV]':'Skip' \
1588     --pass'[Pass phrase for the private key]':'<phrase>' \
1589     --proxy-ntlm'[Use NTLM authentication on the proxy]' \
1590     {-S,--show-error}'[Show error even when -s is used]' \
1591  -  --ciphers'[of ciphers> SSL ciphers to use]':'<list' \
1592  +  --ciphers'[SSL ciphers to use]':'<list of ciphers>' \
1593     --form-string'[Specify multipart MIME data]':'<name=string>' \
1594     --login-options'[Server login options]':'<options>' \
1595     --tftp-blksize'[Set TFTP BLKSIZE option]':'<value>' \
1596  -  --tftp-no-options'[not send any TFTP options]':'Do' \
1597     {-v,--verbose}'[Make the operation more talkative]' \
1598  +  --ftp-skip-pasv-ip'[Skip the IP address for PASV]' \
1599     --proxy-key'[Private key for HTTPS proxy]':'<key>' \
1600     {-F,--form}'[Specify multipart MIME data]':'<name=content>' \
1601     --mail-from'[Mail from this address]':'<address>' \
1602     --oauth2-bearer'[OAuth 2 Bearer Token]':'<token>' \
1603     --proto'[Enable/disable PROTOCOLS]':'<protocols>' \
1604  +  --tftp-no-options'[Do not send any TFTP options]' \
1605     --tlsauthtype'[TLS authentication type]':'<type>' \
1606     --doh-url'[Resolve host names over DOH]':'<URL>' \
1607     --no-sessionid'[Disable SSL session-ID reusing]' \
1608  @@ -173,14 +174,13 @@
1609     --ftp-ssl-ccc'[Send CCC after authenticating]' \
1610     {-4,--ipv4}'[Resolve names to IPv4 addresses]' \
1611     {-6,--ipv6}'[Resolve names to IPv6 addresses]' \
1612  -  --netrc-optional'[either .netrc or URL]':'Use' \
1613     --service-name'[SPNEGO service name]':'<name>' \
1614     {-V,--version}'[Show version number and quit]' \
1615     --data-ascii'[HTTP POST ASCII data]':'<data>' \
1616     --ftp-account'[Account data string]':'<data>' \
1617  -  --compressed-ssh'[SSH compression]':'Enable' \
1618     --disable-eprt'[Inhibit using EPRT or LPRT]' \
1619     --ftp-method'[Control CWD usage]':'<method>' \
1620  +  --netrc-optional'[Use either .netrc or URL]' \
1621     --pubkey'[SSH Public key file name]':'<key>' \
1622     --raw'[Do HTTP "raw"; no transfer decoding]' \
1623     --anyauth'[Pick any authentication method]' \
1624  @@ -189,6 +189,7 @@
1625     --no-alpn'[Disable the ALPN TLS extension]' \
1626     --tcp-nodelay'[Use the TCP_NODELAY option]' \
1627     {-B,--use-ascii}'[Use ASCII/text transfer]' \
1628  +  --compressed-ssh'[Enable SSH compression]' \
1629     --digest'[Use HTTP Digest Authentication]' \
1630     --proxy-tlsv1'[Use TLSv1 for HTTPS proxy]' \
1631     --engine'[Crypto engine to use]':'<name>' \
1632
1633Marcel Raad (7 Feb 2019)
1634- tool_operate: fix typecheck warning
1635
1636  Use long for CURLOPT_HTTP09_ALLOWED to fix the following warning:
1637  tool_operate.c: In function 'operate_do':
1638  ../include/curl/typecheck-gcc.h:47:9: error: call to
1639  '_curl_easy_setopt_err_long' declared with attribute warning:
1640  curl_easy_setopt expects a long argument for this option [-Werror]
1641
1642  Closes https://github.com/curl/curl/pull/3534
1643
1644Jay Satiro (6 Feb 2019)
1645- [Chris Araman brought this change]
1646
1647  url: close TLS before removing conn from cache
1648
1649  - Fix potential crashes in schannel shutdown.
1650
1651  Ensure any TLS shutdown messages are sent before removing the
1652  association between the connection and the easy handle. Reverts
1653  @bagder's previous partial fix for #3412.
1654
1655  Fixes https://github.com/curl/curl/issues/3412
1656  Fixes https://github.com/curl/curl/issues/3505
1657  Closes https://github.com/curl/curl/pull/3531
1658
1659Daniel Gustafsson (6 Feb 2019)
1660- INTERNALS.md: fix subsection depth and link
1661
1662  The Kerberos subsection was mistakenly a subsubsection under FTP, and
1663  the curlx subsection was missing an anchor for the TOC link.
1664
1665  Closes #3529
1666  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1667
1668Version 7.64.0 (6 Feb 2019)
1669
1670Daniel Stenberg (6 Feb 2019)
1671- RELEASE-NOTES: 7.64.0
1672
1673- RELEASE-PROCEDURE: update the release calendar
1674
1675- THANKS: 7.64.0 status
1676
1677Daniel Gustafsson (5 Feb 2019)
1678- ROADMAP: remove already performed item
1679
1680  Commit 7a09b52c98ac8d840a8a9907b1a1d9a9e684bcf5 introduced support
1681  for the draft-ietf-httpbis-cookie-alone-01 cookie draft, and while
1682  the entry was removed from the TODO it was mistakenly left here.
1683  Fix by removing and rewording the entry slightly.
1684
1685  Closes #3530
1686  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1687
1688- [Etienne Simard brought this change]
1689
1690  CONTRIBUTE.md: Fix grammatical errors
1691
1692  Fix grammatical errors making the document read better. Also fixes
1693  a typo.
1694
1695  Closes #3525
1696  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
1697
1698Daniel Stenberg (4 Feb 2019)
1699- [Julian Z brought this change]
1700
1701  docs: use $(INSTALL_DATA) to install man page
1702
1703  Fixes #3518
1704  Closes #3522
1705
1706Jay Satiro (4 Feb 2019)
1707- [Ladar Levison brought this change]
1708
1709  runtests.pl: Fix perl call to include srcdir
1710
1711  - Use explicit include opt for perl calls.
1712
1713  Prior to this change some scripts couldn't find their dependencies.
1714
1715  At the top, perl is called using with the "-Isrcdir" option, and it
1716  works:
1717
1718  https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L183
1719
1720  But on line 3868, that option is omitted. This caused problems for me,
1721  as the symbol-scan.pl script in particular couldn't find its
1722  dependencies properly:
1723
1724  https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L3868
1725
1726  This patch fixes that oversight by making calls to perl sub-shells
1727  uniform.
1728
1729  Closes https://github.com/curl/curl/pull/3496
1730
1731Daniel Stenberg (4 Feb 2019)
1732- [Daniel Gustafsson brought this change]
1733
1734  smtp: avoid risk of buffer overflow in strtol
1735
1736  If the incoming len 5, but the buffer does not have a termination
1737  after 5 bytes, the strtol() call may keep reading through the line
1738  buffer until is exceeds its boundary. Fix by ensuring that we are
1739  using a bounded read with a temporary buffer on the stack.
1740
1741  Bug: https://curl.haxx.se/docs/CVE-2019-3823.html
1742  Reported-by: Brian Carpenter (Geeknik Labs)
1743  CVE-2019-3823
1744
1745- ntlm: fix *_type3_message size check to avoid buffer overflow
1746
1747  Bug: https://curl.haxx.se/docs/CVE-2019-3822.html
1748  Reported-by: Wenxiang Qian
1749  CVE-2019-3822
1750
1751- NTLM: fix size check condition for type2 received data
1752
1753  Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
1754  Reported-by: Wenxiang Qian
1755  CVE-2018-16890
1756
1757Marcel Raad (1 Feb 2019)
1758- [georgeok brought this change]
1759
1760  spnego_sspi: add support for channel binding
1761
1762  Attempt to add support for Secure Channel binding when negotiate
1763  authentication is used. The problem to solve is that by default IIS
1764  accepts channel binding and curl doesn't utilise them. The result was a
1765  401 response. Scope affects only the Schannel(winssl)-SSPI combination.
1766
1767  Fixes https://github.com/curl/curl/issues/3503
1768  Closes https://github.com/curl/curl/pull/3509
1769
1770Daniel Stenberg (1 Feb 2019)
1771- RELEASE-NOTES: synced
1772
1773- schannel: stop calling it "winssl"
1774
1775  Stick to "Schannel" everywhere. The configure option --with-winssl is
1776  kept to allow existing builds to work but --with-schannel is added as an
1777  alias.
1778
1779  Closes #3504
1780
1781- multi: set the EXPIRE_*TIMEOUT timers at TIMER_STARTSINGLE time
1782
1783  To make sure Curl_timeleft() also thinks the timeout has been reached
1784  when one of the EXPIRE_*TIMEOUTs expires.
1785
1786  Bug: https://curl.haxx.se/mail/lib-2019-01/0073.html
1787  Reported-by: Zhao Yisha
1788  Closes #3501
1789
1790- [John Marshall brought this change]
1791
1792  doc: use meaningless port number in CURLOPT_LOCALPORT example
1793
1794  Use an ephemeral port number here; previously the example had 8080
1795  which could be confusing as the common web server port number might
1796  be misinterpreted as suggesting this option affects the remote port.
1797
1798  URL: https://curl.haxx.se/mail/lib-2019-01/0084.html
1799  Closes #3513
1800
1801GitHub (29 Jan 2019)
1802- [Gisle Vanem brought this change]
1803
1804  Escape the '\'
1805
1806  A backslash should be escaped in Roff / Troff.
1807
1808Jay Satiro (29 Jan 2019)
1809- TODO: WinSSL: 'Add option to disable client cert auto-send'
1810
1811  By default WinSSL selects and send a client certificate automatically,
1812  but for privacy and consistency we should offer an option to disable the
1813  default auto-send behavior.
1814
1815  Reported-by: Jeroen Ooms
1816
1817  Closes https://github.com/curl/curl/issues/2262
1818
1819Daniel Stenberg (28 Jan 2019)
1820- [Jeremie Rapin brought this change]
1821
1822  sigpipe: if mbedTLS is used, ignore SIGPIPE
1823
1824  mbedTLS doesn't have a sigpipe management. If a write/read occurs when
1825  the remote closes the socket, the signal is raised and kills the
1826  application.  Use the curl mecanisms fix this behavior.
1827
1828  Signed-off-by: Jeremie Rapin <j.rapin@overkiz.com>
1829
1830  Closes #3502
1831
1832- unit1653: make it survive torture tests
1833
1834Jay Satiro (28 Jan 2019)
1835- [Michael Kujawa brought this change]
1836
1837  timeval: Disable MSVC Analyzer GetTickCount warning
1838
1839  Compiling with msvc /analyze and a recent Windows SDK warns against
1840  using GetTickCount (Suggests to use GetTickCount64 instead.)
1841
1842  Since GetTickCount is only being used when GetTickCount64 isn't
1843  available, I am disabling that warning.
1844
1845  Fixes https://github.com/curl/curl/issues/3437
1846  Closes https://github.com/curl/curl/pull/3440
1847
1848Daniel Stenberg (26 Jan 2019)
1849- configure: rewrite --enable-code-coverage
1850
1851  The previously used ax_code_coverage.m4 is not license compatible and
1852  must not be used.
1853
1854  Reported-by: William A. Rowe Jr
1855  Fixes #3497
1856  Closes #3499
1857
1858- [Felix Hädicke brought this change]
1859
1860  setopt: enable CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION for libssh
1861
1862  CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION are supported for
1863  libssh as well. So accepting these options only when compiling with
1864  libssh2 is wrong here.
1865
1866  Fixes #3493
1867  Closes #3494
1868
1869- [Felix Hädicke brought this change]
1870
1871  libssh: do not let libssh create socket
1872
1873  By default, libssh creates a new socket, instead of using the socket
1874  created by curl for SSH connections.
1875
1876  Pass the socket created by curl to libssh using ssh_options_set() with
1877  SSH_OPTIONS_FD directly after ssh_new(). So libssh uses our socket
1878  instead of creating a new one.
1879
1880  This approach is very similar to what is done in the libssh2 code, where
1881  the socket created by curl is passed to libssh2 when
1882  libssh2_session_startup() is called.
1883
1884  Fixes #3491
1885  Closes #3495
1886
1887- RELEASE-NOTES: synced
1888
1889- [Archangel_SDY brought this change]
1890
1891  schannel: preserve original certificate path parameter
1892
1893  Fixes #3480
1894  Closes #3487
1895
1896- KNOWN_BUGS: tests not compatible with python3
1897
1898  Closes #3289
1899  [skip ci]
1900
1901Daniel Gustafsson (20 Jan 2019)
1902- memcmp: avoid doing single char memcmp
1903
1904  There is no real gain in performing memcmp() comparisons on single
1905  characters, so change these to array subscript inspections which
1906  saves a call and makes the code clearer.
1907
1908  Closes #3486
1909  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1910  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
1911
1912Daniel Stenberg (19 Jan 2019)
1913- COPYING: it's 2019
1914
1915  [skip ci]
1916
1917- [hhb brought this change]
1918
1919  configure: fix recv/send/select detection on Android
1920
1921  This reverts commit d4f25201fb7da03fc88f90d51101beb3d0026db9.
1922
1923  The overloadable attribute is removed again starting from
1924  NDK17. Actually they only exist in two NDK versions (15 and 16). With
1925  overloadable, the first condition tried will succeed. Results in wrong
1926  detection result.
1927
1928  Closes #3484
1929
1930Marcel Raad (19 Jan 2019)
1931- [georgeok brought this change]
1932
1933  ntlm_sspi: add support for channel binding
1934
1935  Windows extended potection (aka ssl channel binding) is required
1936  to login to ntlm IIS endpoint, otherwise the server returns 401
1937  responses.
1938
1939  Fixes #3280
1940  Closes #3321
1941
1942Daniel Stenberg (18 Jan 2019)
1943- schannel: on connection close there might not be a transfer
1944
1945  Reported-by: Marcel Raad
1946  Fixes #3412
1947  Closes #3483
1948
1949- [Joel Depooter brought this change]
1950
1951  ssh: log the libssh2 error message when ssh session startup fails
1952
1953  When a ssh session startup fails, it is useful to know why it has
1954  failed. This commit changes the message from:
1955     "Failure establishing ssh session"
1956  to something like this, for example:
1957     "Failure establishing ssh session: -5, Unable to exchange encryption keys"
1958
1959  Closes #3481
1960
1961Alessandro Ghedini (16 Jan 2019)
1962- Fix typo in manpage
1963
1964Daniel Stenberg (16 Jan 2019)
1965- RELEASE-NOTES: synced
1966
1967Sergei Nikulov (16 Jan 2019)
1968- cmake: updated check for HAVE_POLL_FINE to match autotools
1969
1970Daniel Stenberg (16 Jan 2019)
1971- curl-compilers.m4: check for __ibmxl__ to detect xlclang
1972
1973  Follow-up to 2fa0d57e2e3. The __xlc__ symbol is only defined there if a
1974  particular flag is used for legacy macros.
1975
1976  Fixes #3474
1977  Closes #3479
1978
1979- openssl: fix the SSL_get_tlsext_status_ocsp_resp call
1980
1981  .... to not pass in a const in the second argument as that's not how it
1982  is supposed to be used and might cause compiler warnings.
1983
1984  Reported-by: Pavel Pavlov
1985  Fixes #3477
1986  Closes #3478
1987
1988- curl-compilers.m4: detect xlclang
1989
1990  Since it isn't totally clang compatible, we detect this IBM clang
1991  front-end and if detected, avoids some clang specific magic.
1992
1993  Reported-by: Kees Dekker
1994  Fixes #3474
1995  Closes #3476
1996
1997- README: add codacy code quality badge
1998
1999  [skip ci]
2000
2001- extract_if_dead: follow-up to 54b201b48c90a
2002
2003  extract_if_dead() dead is called from two functions, and only one of
2004  them should get conn->data updated and now neither call path clears it.
2005
2006  scan-build found a case where conn->data would be NULL dereferenced in
2007  ConnectionExists() otherwise.
2008
2009  Closes #3473
2010
2011- multi: remove "Dead assignment"
2012
2013  Found by scan-build. Follow-up to 4c35574bb785ce.
2014
2015  Closes #3471
2016
2017- tests: move objnames-* from lib into tests
2018
2019  Since they're used purely for testing purposes, I think they should
2020  rather be stored there.
2021
2022  Closes #3470
2023
2024Sergei Nikulov (15 Jan 2019)
2025- travis: added cmake build for osx
2026
2027Daniel Stenberg (14 Jan 2019)
2028- [Frank Gevaerts brought this change]
2029
2030  cookie: fix comment typo (url_path_len -> uri_path_len)
2031
2032  Closes #3469
2033
2034Marcel Raad (14 Jan 2019)
2035- winbuild: conditionally use /DZLIB_WINAPI
2036
2037  zlibwapi.lib (dynamic library) and zlibstat.lib (static library) have
2038  the ZLIB_WINAPI define set by default. Using them requires that define
2039  too.
2040
2041  Ref: https://zlib.net/DLL_FAQ.txt
2042
2043  Fixes https://github.com/curl/curl/issues/3133
2044  Closes https://github.com/curl/curl/pull/3460
2045
2046Daniel Stenberg (14 Jan 2019)
2047- src/Makefile: make 'tidy' target work for metalink builds
2048
2049- extract_if_dead: use a known working transfer when checking connections
2050
2051  Make sure that this function sets a proper "live" transfer for the
2052  connection before calling the protocol-specific connection check
2053  function, and then clear it again afterward as a non-used connection has
2054  no current transfer.
2055
2056  Reported-by: Jeroen Ooms
2057  Reviewed-by: Marcel Raad
2058  Reviewed-by: Daniel Gustafsson
2059  Fixes #3463
2060  Closes #3464
2061
2062- openssl: adapt to 3.0.0, OpenSSL_version_num() is deprecated
2063
2064  OpenSSL_version() replaces OpenSSL_version_num()
2065
2066  Closes #3462
2067
2068Sergei Nikulov (11 Jan 2019)
2069- cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCC
2070
2071Daniel Stenberg (11 Jan 2019)
2072- urldata: rename easy_conn to just conn
2073
2074  We use "conn" everywhere to be a pointer to the connection.
2075
2076  Introduces two functions that "attaches" and "detaches" the connection
2077  to and from the transfer.
2078
2079  Going forward, we should favour using "data->conn" (since a transfer
2080  always only has a single connection or none at all) to "conn->data"
2081  (since a connection can have none, one or many transfers associated with
2082  it and updating conn->data to be correct is error prone and a frequent
2083  reason for internal issues).
2084
2085  Closes #3442
2086
2087- tool_cb_prg: avoid integer overflow
2088
2089  When calculating the progress bar width.
2090
2091  Reported-by: Peng Li
2092  Fixes #3456
2093  Closes #3458
2094
2095Daniel Gustafsson (11 Jan 2019)
2096- travis: turn off copyright year checks in checksrc
2097
2098  Invoking the maintainer intended COPYRIGHTYEAR check for everyone
2099  in the PR pipeline is too invasive, especially at the turn of the
2100  year when many files get affected. Remove and leave it as a tool
2101  for maintainers to verify patches before commits.
2102
2103  This reverts f7bdf4b2e1d81b2652b81b9b3029927589273b41.
2104
2105  After discussion with: Daniel Stenberg
2106
2107Daniel Stenberg (10 Jan 2019)
2108- KNOWN_BUGS: cmake makes unusable tool_hugehelp.c with MinGW
2109
2110  Closes #3125
2111
2112- KNOWN_BUGS: Improve --data-urlencode space encoding
2113
2114  Closes #3229
2115
2116Patrick Monnerat (10 Jan 2019)
2117- os400: add a missing closing bracket
2118
2119  See https://github.com/curl/curl/issues/3453#issuecomment-453054458
2120
2121  Reported-by: jonrumsey on github
2122
2123- os400: fix extra parameter syntax error.
2124
2125  Reported-by: jonrumsey on github
2126  Closes #3453
2127
2128Daniel Stenberg (10 Jan 2019)
2129- test1558: verify CURLINFO_PROTOCOL on file:// transfer
2130
2131  Attempt to reproduce issue #3444.
2132
2133  Closes #3447
2134
2135- RELEASE-NOTES: synced
2136
2137- xattr: strip credentials from any URL that is stored
2138
2139  Both user and password are cleared uncondtitionally.
2140
2141  Added unit test 1621 to verify.
2142
2143  Fixes #3423
2144  Closes #3433
2145
2146- cookies: allow secure override when done over HTTPS
2147
2148  Added test 1562 to verify.
2149
2150  Reported-by: Jeroen Ooms
2151  Fixes #3445
2152  Closes #3450
2153
2154- multi: multiplexing improvements
2155
2156  Fixes #3436
2157  Closes #3448
2158
2159   Problem 1
2160
2161  After LOTS of scratching my head, I eventually realized that even when doing
2162  10 uploads in parallel, sometimes the socket callback to the application that
2163  tells it what to wait for on the socket, looked like it would reflect the
2164  status of just the single transfer that just changed state.
2165
2166  Digging into the code revealed that this was indeed the truth. When multiple
2167  transfers are using the same connection, the application did not correctly get
2168  the *combined* flags for all transfers which then could make it switch to READ
2169  (only) when in fact most transfers wanted to get told when the socket was
2170  WRITEABLE.
2171
2172   Problem 1b
2173
2174  A separate but related regression had also been introduced by me when I
2175  cleared connection/transfer association better a while ago, as now the logic
2176  couldn't find the connection and see if that was marked as used by more
2177  transfers and then it would also prematurely remove the socket from the socket
2178  hash table even in times other transfers were still using it!
2179
2180   Fix 1
2181
2182  Make sure that each socket stored in the socket hash has a "combined" action
2183  field of what to ask the application to wait for, that is potentially the ORed
2184  action of multiple parallel transfers. And remove that socket hash entry only
2185  if there are no transfers left using it.
2186
2187   Problem 2
2188
2189  The socket hash entry stored an association to a single transfer using that
2190  socket - and when curl_multi_socket_action() was called to tell libcurl about
2191  activities on that specific socket only that transfer was "handled".
2192
2193  This was WRONG, as a single socket/connection can be used by numerous parallel
2194  transfers and not necessarily a single one.
2195
2196   Fix 2
2197
2198  We now store a list of handles in the socket hashtable entry and when libcurl
2199  is told there's traffic for a particular socket, it now iterates over all
2200  known transfers using that single socket.
2201
2202- test1561: improve test name
2203
2204  [skip ci]
2205
2206- [Katsuhiko YOSHIDA brought this change]
2207
2208  cookies: skip custom cookies when redirecting cross-site
2209
2210  Closes #3417
2211
2212- THANKS: fixups and a dedupe
2213
2214  [skip ci]
2215
2216- timediff: fix math for unsigned time_t
2217
2218  Bug: https://curl.haxx.se/mail/lib-2018-12/0088.html
2219
2220  Closes #3449
2221
2222- [Bernhard M. Wiedemann brought this change]
2223
2224  tests: allow tests to pass by 2037-02-12
2225
2226  similar to commit f508d29f3902104018
2227
2228  Closes #3443
2229
2230- RELEASE-NOTES: synced
2231
2232- [Brad Spencer brought this change]
2233
2234  curl_multi_remove_handle() don't block terminating c-ares requests
2235
2236  Added Curl_resolver_kill() for all three resolver modes, which only
2237  blocks when necessary, along with test 1592 to confirm
2238  curl_multi_remove_handle() doesn't block unless it must.
2239
2240  Closes #3428
2241  Fixes #3371
2242
2243- Revert "http_negotiate: do not close connection until negotiation is completed"
2244
2245  This reverts commit 07ebaf837843124ee670e5b8c218b80b92e06e47.
2246
2247  This also reopens PR #3275 which brought the change now reverted.
2248
2249  Fixes #3384
2250  Closes #3439
2251
2252- curl/urlapi.h: include "curl.h" first
2253
2254  This allows programs to include curl/urlapi.h directly.
2255
2256  Reviewed-by: Daniel Gustafsson
2257  Reported-by: Ben Kohler
2258  Fixes #3438
2259  Closes #3441
2260
2261Marcel Raad (6 Jan 2019)
2262- VS projects: fix build warning
2263
2264  Starting with Visual Studio 2017 Update 9, Visual Studio doesn't like
2265  the MinimalRebuild option anymore and warns:
2266
2267  cl : Command line warning D9035: option 'Gm' has been deprecated and
2268  will be removed in a future release
2269
2270  The option can be safely removed so that the default is used.
2271
2272  Closes https://github.com/curl/curl/pull/3425
2273
2274- schannel: fix compiler warning
2275
2276  When building with Unicode on MSVC, the compiler warns about freeing a
2277  pointer to const in Curl_unicodefree. Fix this by declaring it as
2278  non-const and casting the argument to Curl_convert_UTF8_to_tchar to
2279  non-const too, like we do in all other places.
2280
2281  Closes https://github.com/curl/curl/pull/3435
2282
2283Daniel Stenberg (4 Jan 2019)
2284- [Rikard Falkeborn brought this change]
2285
2286  printf: introduce CURL_FORMAT_TIMEDIFF_T
2287
2288- [Rikard Falkeborn brought this change]
2289
2290  printf: fix format specifiers
2291
2292  Closes #3426
2293
2294- libtest/stub_gssapi: use "real" snprintf
2295
2296  ... since it doesn't link with libcurl.
2297
2298  Reverts the commit dcd6f81025 changes from this file.
2299
2300  Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
2301  Reported-by: Shlomi Fish
2302  Reviewed-by: Daniel Gustafsson
2303  Reviewed-by: Kamil Dudka
2304
2305  Closes #3434
2306
2307- INTERNALS: correct some outdated function names
2308
2309  Closes #3431
2310
2311- docs/version.d: mention MultiSSL
2312
2313  Reviewed-by: Daniel Gustafsson
2314  Closes #3432
2315
2316Daniel Gustafsson (2 Jan 2019)
2317- [Rikard Falkeborn brought this change]
2318
2319  examples: Update .gitignore
2320
2321  Add a few missing examples to make `make examples` not leave the
2322  workspace in a dirty state.
2323
2324  Closes #3427
2325  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
2326
2327- THANKS: add more missing names
2328
2329  Add Adrian Burcea who made the artwork for the curl://up 2018 event
2330  which was held in Stockholm, Sweden.
2331
2332- docs: mention potential leak in curl_slist_append
2333
2334  When a non-empty list is appended to, and used as the returnvalue,
2335  the list pointer can leak in case of an allocation failure in the
2336  curl_slist_append() call. This is correctly handled in curl code
2337  usage but we weren't explicitly pointing it out in the API call
2338  documentation. Fix by extending the RETURNVALUE manpage section
2339  and example code.
2340
2341  Closes #3424
2342  Reported-by: dnivras on github
2343  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2344
2345Marcel Raad (1 Jan 2019)
2346- tvnow: silence conversion warnings
2347
2348  MinGW-w64 defaults to targeting Windows 7 now, so GetTickCount64 is
2349  used and the milliseconds are represented as unsigned long long,
2350  leading to a compiler warning when implicitly converting them to long.
2351
2352Daniel Stenberg (1 Jan 2019)
2353- THANKS: dedupe more names
2354
2355  Researched-by: Tae Wong
2356
2357Marcel Raad (1 Jan 2019)
2358- [Markus Moeller brought this change]
2359
2360  ntlm: update selection of type 3 response
2361
2362  NTLM2 did not work i.e. no NTLMv2 response was created. Changing the
2363  check seems to work.
2364
2365  Ref: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NLMP/[MS-NLMP].pdf
2366
2367  Fixes https://github.com/curl/curl/issues/3286
2368  Closes https://github.com/curl/curl/pull/3287
2369  Closes https://github.com/curl/curl/pull/3415
2370
2371Daniel Stenberg (31 Dec 2018)
2372- THANKS: added missing names from year <= 2000
2373
2374  Due to a report of a missing name in THANKS I manually went through an
2375  old CHANGES.0 file and added many previously missing names here.
2376
2377Daniel Gustafsson (30 Dec 2018)
2378- urlapi: fix parsing ipv6 with zone index
2379
2380  The previous fix for parsing IPv6 URLs with a zone index was a paddle
2381  short for URLs without an explicit port. This patch fixes that case
2382  and adds a unit test case.
2383
2384  This bug was highlighted by issue #3408, and while it's not the full
2385  fix for the problem there it is an isolated bug that should be fixed
2386  regardless.
2387
2388  Closes #3411
2389  Reported-by: GitYuanQu on github
2390  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2391
2392Daniel Stenberg (30 Dec 2018)
2393- THANKS: dedupe Guenter Knauf
2394
2395  Reported-by: Tae Wong
2396
2397- THANKS: missing name from the 6.3.1 release!
2398
2399Daniel Gustafsson (27 Dec 2018)
2400- RELEASE-NOTES: synced
2401
2402- [Claes Jakobsson brought this change]
2403
2404  hostip: support wildcard hosts
2405
2406  This adds support for wildcard hosts in CURLOPT_RESOLVE. These are
2407  try-last so any non-wildcard entry is resolved first. If specified,
2408  any host not matched by another CURLOPT_RESOLVE config will use this
2409  as fallback.
2410
2411  Example send a.com to 10.0.0.1 and everything else to 10.0.0.2:
2412    curl --resolve *:443:10.0.0.2 --resolve a.com:443:10.0.0.1 \
2413         https://a.com https://b.com
2414
2415  This is probably quite similar to using:
2416    --connect-to a.com:443:10.0.0.1:443 --connect-to :443:10.0.0.2:443
2417
2418  Closes #3406
2419  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2420
2421- url: fix incorrect indentation
2422
2423Patrick Monnerat (26 Dec 2018)
2424- os400: upgrade ILE/RPG binding.
2425
2426  - Trailer function support.
2427  - http 0.9 option.
2428  - curl_easy_upkeep.
2429
2430Daniel Gustafsson (25 Dec 2018)
2431- FAQ: remove mention of sourceforge for github
2432
2433  The project bug tracker is no longer hosted at sourceforge but is now
2434  hosted on the curl Github page. Update the FAQ to reflect.
2435
2436  Closes #3410
2437  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2438
2439- openvms: fix typos in documentation
2440
2441- openvms: fix OpenSSL discovery on VAX
2442
2443  The DCL code had a typo in one of the commands which would make the
2444  OpenSSL discovery on VAX fail. The correct syntax is F$ENVIRONMENT.
2445
2446  Closes #3407
2447  Reviewed-by: Viktor Szakats <commit@vszakats.net>
2448
2449Daniel Stenberg (24 Dec 2018)
2450- [Ruslan Baratov brought this change]
2451
2452  cmake: use lowercase for function name like the rest of the code
2453
2454  Reviewed-by: Sergei Nikulov
2455
2456  closes #3196
2457
2458- Revert "libssh: no data pointer == nothing to do"
2459
2460  This reverts commit c98ee5f67f497195c9 since commit f3ce38739fa fixed the
2461  problem in a more generic way.
2462
2463- disconnect: set conn->data for protocol disconnect
2464
2465  Follow-up to fb445a1e18d: Set conn->data explicitly to point out the
2466  current transfer when invoking the protocol-specific disconnect function
2467  so that it can work correctly.
2468
2469  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12173
2470
2471Jay Satiro (23 Dec 2018)
2472- [Pavel Pavlov brought this change]
2473
2474  timeval: Use high resolution timestamps on Windows
2475
2476  - Use QueryPerformanceCounter on Windows Vista+
2477
2478  There is confusing info floating around that QueryPerformanceCounter
2479  can leap etc, which might have been true long time ago, but no longer
2480  the case nowadays (perhaps starting from WinXP?). Also, boost and
2481  std::chrono::steady_clock use QueryPerformanceCounter in a similar way.
2482
2483  Prior to this change GetTickCount or GetTickCount64 was used, which has
2484  lower resolution. That is still the case for <= XP.
2485
2486  Fixes https://github.com/curl/curl/issues/3309
2487  Closes https://github.com/curl/curl/pull/3318
2488
2489Daniel Stenberg (22 Dec 2018)
2490- libssh: no data pointer == nothing to do
2491
2492- conncache_unlock: avoid indirection by changing input argument type
2493
2494- disconnect: separate connections and easy handles better
2495
2496  Do not assume/store assocation between a given easy handle and the
2497  connection if it can be avoided.
2498
2499  Long-term, the 'conn->data' pointer should probably be removed as it is a
2500  little too error-prone. Still used very widely though.
2501
2502  Reported-by: masbug on github
2503  Fixes #3391
2504  Closes #3400
2505
2506- libssh: free sftp_canonicalize_path() data correctly
2507
2508  Assisted-by: Harry Sintonen
2509
2510  Fixes #3402
2511  Closes #3403
2512
2513- RELEASE-NOTES: synced
2514
2515- http: added options for allowing HTTP/0.9 responses
2516
2517  Added CURLOPT_HTTP09_ALLOWED and --http0.9 for this purpose.
2518
2519  For now, both the tool and library allow HTTP/0.9 by default.
2520  docs/DEPRECATE.md lays out the plan for when to reverse that default: 6
2521  months after the 7.64.0 release. The options are added already now so
2522  that applications/scripts can start using them already now.
2523
2524  Fixes #2873
2525  Closes #3383
2526
2527- if2ip: remove unused function Curl_if_is_interface_name
2528
2529  Closes #3401
2530
2531- http2: clear pause stream id if it gets closed
2532
2533  Reported-by: Florian Pritz
2534
2535  Fixes #3392
2536  Closes #3399
2537
2538Daniel Gustafsson (20 Dec 2018)
2539- [David Garske brought this change]
2540
2541  wolfssl: Perform cleanup
2542
2543  This adds a cleanup callback for cyassl. Resolves possible memory leak
2544  when using ECC fixed point cache.
2545
2546  Closes #3395
2547  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2548  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
2549
2550Daniel Stenberg (20 Dec 2018)
2551- mbedtls: follow-up VERIFYHOST fix from f097669248
2552
2553  Fix-by: Eric Rosenquist
2554
2555  Fixes #3376
2556  Closes #3390
2557
2558- curlver: bump to 7.64.0 for next release
2559
2560Daniel Gustafsson (19 Dec 2018)
2561- cookies: extend domain checks to non psl builds
2562
2563  Ensure to perform the checks we have to enforce a sane domain in
2564  the cookie request. The check for non-PSL enabled builds is quite
2565  basic but it's better than nothing.
2566
2567  Closes #2964
2568  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2569
2570Daniel Stenberg (19 Dec 2018)
2571- [Matus Uzak brought this change]
2572
2573  smb: fix incorrect path in request if connection reused
2574
2575  Follow-up to 09e401e01bf9.  If connection gets reused, then data member
2576  will be copied, but not the proto member.  As a result, in smb_do(),
2577  path has been set from the original proto.share data.
2578
2579  Closes #3388
2580
2581- curl -J: do not append to the destination file
2582
2583  Reported-by: Kamil Dudka
2584  Fixes #3380
2585  Closes #3381
2586
2587- mbedtls: use VERIFYHOST
2588
2589  Previously, VERIFYPEER would enable/disable all checks.
2590
2591  Reported-by: Eric Rosenquist
2592  Fixes #3376
2593  Closes #3380
2594
2595- pingpong: change default response timeout to 120 seconds
2596
2597  Previously it was 30 minutes
2598
2599- pingpong: ignore regular timeout in disconnect phase
2600
2601  The timeout set with CURLOPT_TIMEOUT is no longer used when
2602  disconnecting from one of the pingpong protocols (FTP, IMAP, SMTP,
2603  POP3).
2604
2605  Reported-by: jasal82 on github
2606
2607  Fixes #3264
2608  Closes #3374
2609
2610- TODO: Windows: set attribute 'archive' for completed downloads
2611
2612  Closes #3354
2613
2614- RELEASE-NOTES: synced
2615
2616- http: minor whitespace cleanup from f464535b
2617
2618- [Ayoub Boudhar brought this change]
2619
2620  http: Implement trailing headers for chunked transfers
2621
2622  This adds the CURLOPT_TRAILERDATA and CURLOPT_TRAILERFUNCTION
2623  options that allow a callback based approach to sending trailing headers
2624  with chunked transfers.
2625
2626  The test server (sws) was updated to take into account the detection of the
2627  end of transfer in the case of trailing headers presence.
2628
2629  Test 1591 checks that trailing headers can be sent using libcurl.
2630
2631  Closes #3350
2632
2633- darwinssl: accept setting max-tls with default min-tls
2634
2635  Reported-by: Andrei Neculau
2636  Fixes #3367
2637  Closes #3373
2638
2639- gopher: fix memory leak from 9026083ddb2a9
2640
2641- [Leonardo Taccari brought this change]
2642
2643  test1201: Add a trailing `?' to the selector
2644
2645  This verify that the `?' in the selector is kept as is.
2646
2647  Verifies the fix in #3370
2648
2649- [Leonardo Taccari brought this change]
2650
2651  gopher: always include the entire gopher-path in request
2652
2653  After the migration to URL API all octets in the selector after the
2654  first `?' were interpreted as query and accidentally discarded and not
2655  passed to the server.
2656
2657  Add a gopherpath to always concatenate possible path and query URL
2658  pieces.
2659
2660  Fixes #3369
2661  Closes #3370
2662
2663- [Leonardo Taccari brought this change]
2664
2665  urlapi: distinguish possibly empty query
2666
2667  If just a `?' to indicate the query is passed always store a zero length
2668  query instead of having a NULL query.
2669
2670  This permits to distinguish URL with trailing `?'.
2671
2672  Fixes #3369
2673  Closes #3370
2674
2675Daniel Gustafsson (13 Dec 2018)
2676- OS400: handle memory error in list conversion
2677
2678  Curl_slist_append_nodup() returns NULL when it fails to create a new
2679  item for the specified list, and since the coding here reassigned the
2680  new list on top of the old list it would result in a dangling pointer
2681  and lost memory. Also, in case we hit an allocation failure at some
2682  point during the conversion, with allocation succeeding again on the
2683  subsequent call(s) we will return a truncated list around the malloc
2684  failure point. Fix by assigning to a temporary list pointer, which can
2685  be checked (which is the common pattern for slist appending), and free
2686  all the resources on allocation failure.
2687
2688  Closes #3372
2689  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2690
2691- cookies: leave secure cookies alone
2692
2693  Only allow secure origins to be able to write cookies with the
2694  'secure' flag set. This reduces the risk of non-secure origins
2695  to influence the state of secure origins. This implements IETF
2696  Internet-Draft draft-ietf-httpbis-cookie-alone-01 which updates
2697  RFC6265.
2698
2699  Closes #2956
2700  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2701
2702Daniel Stenberg (13 Dec 2018)
2703- docs: fix the --tls-max description
2704
2705  Reported-by: Tobias Lindgren
2706  Pointed out in #3367
2707
2708  Closes #3368
2709
2710Daniel Gustafsson (12 Dec 2018)
2711- urlapi: Fix port parsing of eol colon
2712
2713  A URL with a single colon without a portnumber should use the default
2714  port, discarding the colon. Fix, add a testcase and also do little bit
2715  of comment wordsmithing.
2716
2717  Closes #3365
2718  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2719
2720Version 7.63.0 (12 Dec 2018)
2721
2722Daniel Stenberg (12 Dec 2018)
2723- RELEASE-NOTES: 7.63.0
2724
2725- THANKS: from the curl 7.62.0 cycle
2726
2727- test1519: use lib1518 and test CURLINFO_REDIRECT_URL more
2728
2729- Curl_follow: extract the Location: header field unvalidated
2730
2731  ... when not actually following the redirect. Otherwise we return error
2732  for this and an application can't extract the value.
2733
2734  Test 1518 added to verify.
2735
2736  Reported-by: Pavel Pavlov
2737  Fixes #3340
2738  Closes #3364
2739
2740- multi: convert two timeout variables to timediff_t
2741
2742  The time_t type is unsigned on some systems and these variables are used
2743  to hold return values from functions that return timediff_t
2744  already. timediff_t is always a signed type.
2745
2746  Closes #3363
2747
2748- delta: use --diff-filter on the git diff-tree invokes
2749
2750  Suggested-by: Dave Reisner
2751
2752Patrick Monnerat (11 Dec 2018)
2753- documentation: curl_formadd field and file names are now escaped
2754
2755  Prior to 7.56.0, fieldnames and filenames were set in Content-Disposition
2756  header without special processing: this may lead to invalid RFC 822
2757  quoted-strings.
2758  7.56.0 introduces escaping of backslashes and double quotes in these names:
2759  mention it in the documentation.
2760
2761  Reported-by: daboul on github
2762  Closes #3361
2763
2764Daniel Stenberg (11 Dec 2018)
2765- scripts/delta: show repo delta info from last release
2766
2767  ... where "last release" should be the git tag in the repo.
2768
2769Daniel Gustafsson (11 Dec 2018)
2770- tests: add urlapi unittest
2771
2772  This adds a new unittest intended to cover the internal functions in
2773  the urlapi code, starting with parse_port(). In order to avoid name
2774  collisions in debug builds, parse_port() is renamed Curl_parse_port()
2775  since it will be exported.
2776
2777  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2778  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2779
2780- urlapi: fix portnumber parsing for ipv6 zone index
2781
2782  An IPv6 URL which contains a zone index includes a '%%25<zode id>'
2783  string before the ending ']' bracket. The parsing logic wasn't set
2784  up to cope with the zone index however, resulting in a malformed url
2785  error being returned. Fix by breaking the parsing into two stages
2786  to correctly handle the zone index.
2787
2788  Closes #3355
2789  Closes #3319
2790  Reported-by: tonystz on Github
2791  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2792  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2793
2794Daniel Stenberg (11 Dec 2018)
2795- [Jay Satiro brought this change]
2796
2797  http: fix HTTP auth to include query in URI
2798
2799  - Include query in the path passed to generate HTTP auth.
2800
2801  Recent changes to use the URL API internally (46e1640, 7.62.0)
2802  inadvertently broke authentication URIs by omitting the query.
2803
2804  Fixes https://github.com/curl/curl/issues/3353
2805  Closes #3356
2806
2807- [Michael Kaufmann brought this change]
2808
2809  http: don't set CURLINFO_CONDITION_UNMET for http status code 204
2810
2811  The http status code 204 (No Content) should not change the "condition
2812  unmet" flag. Only the http status code 304 (Not Modified) should do
2813  this.
2814
2815  Closes #359
2816
2817- [Samuel Surtees brought this change]
2818
2819  ldap: fix LDAP URL parsing regressions
2820
2821  - Match URL scheme with LDAP and LDAPS
2822  - Retrieve attributes, scope and filter from URL query instead
2823
2824  Regression brought in 46e164069d1a5230 (7.62.0)
2825
2826  Closes #3362
2827
2828- RELEASE-NOTES: synced
2829
2830- [Stefan Kanthak brought this change]
2831
2832  (lib)curl.rc: fixup for minor bugs
2833
2834  All resources defined in lib/libcurl.rc and curl.rc are language
2835  neutral.
2836
2837  winbuild/MakefileBuild.vc ALWAYS defines the macro DEBUGBUILD, so the
2838  ifdef's in line 33 of lib/libcurl.rc and src/curl.rc are wrong.
2839
2840  Replace the hard-coded constants in both *.rc files with #define'd
2841  values.
2842
2843  Thumbs-uped-by: Rod Widdowson, Johannes Schindelin
2844  URL: https://curl.haxx.se/mail/lib-2018-11/0000.html
2845  Closes #3348
2846
2847- test329: verify cookie max-age=0 immediate expiry
2848
2849- cookies: expire "Max-Age=0" immediately
2850
2851  Reported-by: Jeroen Ooms
2852  Fixes #3351
2853  Closes #3352
2854
2855- [Johannes Schindelin brought this change]
2856
2857  Upon HTTP_1_1_REQUIRED, retry the request with HTTP/1.1
2858
2859  This is a companion patch to cbea2fd2c (NTLM: force the connection to
2860  HTTP/1.1, 2018-12-06): with NTLM, we can switch to HTTP/1.1
2861  preemptively. However, with other (Negotiate) authentication it is not
2862  clear to this developer whether there is a way to make it work with
2863  HTTP/2, so let's try HTTP/2 first and fall back in case we encounter the
2864  error HTTP_1_1_REQUIRED.
2865
2866  Note: we will still keep the NTLM workaround, as it avoids an extra
2867  round trip.
2868
2869  Daniel Stenberg helped a lot with this patch, in particular by
2870  suggesting to introduce the Curl_h2_http_1_1_error() function.
2871
2872  Closes #3349
2873
2874  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2875
2876- [Ben Greear brought this change]
2877
2878  openssl: fix unused variable compiler warning with old openssl
2879
2880  URL: https://curl.haxx.se/mail/lib-2018-11/0055.html
2881
2882  Closes #3347
2883
2884- [Johannes Schindelin brought this change]
2885
2886  NTLM: force the connection to HTTP/1.1
2887
2888  Since v7.62.0, cURL tries to use HTTP/2 whenever the server announces
2889  the capability. However, NTLM authentication only works with HTTP/1.1,
2890  and will likely remain in that boat (for details, see
2891  https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis#when-is-http2-not-supported).
2892
2893  When we just found out that we want to use NTLM, and when the current
2894  connection runs in HTTP/2 mode, let's force the connection to be closed
2895  and to be re-opened using HTTP/1.1.
2896
2897  Fixes https://github.com/curl/curl/issues/3341.
2898  Closes #3345
2899
2900  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2901
2902- [Johannes Schindelin brought this change]
2903
2904  curl_global_sslset(): id == -1 is not necessarily an error
2905
2906  It is allowed to call that function with id set to -1, specifying the
2907  backend by the name instead. We should imitate what is done further down
2908  in that function to allow for that.
2909
2910  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2911
2912  Closes #3346
2913
2914Johannes Schindelin (6 Dec 2018)
2915- .gitattributes: make tabs in indentation a visible error
2916
2917  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2918
2919Daniel Stenberg (6 Dec 2018)
2920- RELEASE-NOTES: synced
2921
2922- doh: fix memory leak in OOM situation
2923
2924  Reviewed-by: Daniel Gustafsson
2925  Closes #3342
2926
2927- doh: make it work for h2-disabled builds too
2928
2929  Reported-by: dtmsecurity at github
2930  Fixes #3325
2931  Closes #3336
2932
2933- packages: remove old leftover files and dirs
2934
2935  This subdir has mostly become an attic of never-used cruft from the
2936  past.
2937
2938  Closes #3331
2939
2940- [Gergely Nagy brought this change]
2941
2942  openssl: do not use file BIOs if not requested
2943
2944  Moves the file handling BIO calls to the branch of the code where they
2945  are actually used.
2946
2947  Closes #3339
2948
2949- [Paul Howarth brought this change]
2950
2951  nss: Fix compatibility with nss versions 3.14 to 3.15
2952
2953- [Paul Howarth brought this change]
2954
2955  nss: Improve info message when falling back SSL protocol
2956
2957  Use descriptive text strings rather than decimal numbers.
2958
2959- [Paul Howarth brought this change]
2960
2961  nss: Fall back to latest supported SSL version
2962
2963  NSS may be built without support for the latest SSL/TLS versions,
2964  leading to "SSL version range is not valid" errors when the library
2965  code supports a recent version (e.g. TLS v1.3) but it has explicitly
2966  been disabled.
2967
2968  This change adjusts the maximum SSL version requested by libcurl to
2969  be the maximum supported version at runtime, as long as that version
2970  is at least as high as the minimum version required by libcurl.
2971
2972  Fixes #3261
2973
2974Daniel Gustafsson (3 Dec 2018)
2975- travis: enable COPYRIGHTYEAR extended warning
2976
2977  The extended warning for checking incorrect COPYRIGHTYEAR is quite
2978  expensive to run, so rather than expecting every developer to do it
2979  we ensure it's turned on locally for Travis.
2980
2981- checksrc: add COPYRIGHTYEAR check
2982
2983  Forgetting to bump the year in the copyright clause when hacking has
2984  been quite common among curl developers, but a traditional checksrc
2985  check isn't a good fit as it would penalize anyone hacking on January
2986  1st (among other things). This adds a more selective COPYRIGHTYEAR
2987  check which intends to only cover the currently hacked on changeset.
2988
2989  The check for updated copyright year is currently not enforced on all
2990  files but only on files edited and/or committed locally. This is due to
2991  the amount of files which aren't updated with their correct copyright
2992  year at the time of their respective commit.
2993
2994  To further avoid running this expensive check for every developer, it
2995  adds a new local override mode for checksrc where a .checksrc file can
2996  be used to turn on extended warnings locally.
2997
2998  Closes #3303
2999  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3000
3001Daniel Stenberg (3 Dec 2018)
3002- CHECKSRC.md: document more warnings
3003
3004  Closes #3335
3005  [ci skip]
3006
3007- RELEASE-NOTES: synced
3008
3009- SECURITY-PROCESS: bountygraph shuts down
3010
3011  This backpedals back the documents to the state before bountygraph.
3012
3013  Closes #3311
3014
3015- curl: fix memory leak reading --writeout from file
3016
3017  If another string had been set first, the writout function for reading
3018  the syntax from file would leak the previously allocated memory.
3019
3020  Reported-by: Brian Carpenter
3021  Fixes #3322
3022  Closes #3330
3023
3024- tool_main: rename function to make it unique and better
3025
3026  ... there's already another function in the curl tool named
3027  free_config_fields!
3028
3029Daniel Gustafsson (29 Nov 2018)
3030- TODO: remove CURLOPT_DNS_USE_GLOBAL_CACHE entry
3031
3032  Commit 7c5837e79280e6abb3ae143dfc49bca5e74cdd11 deprecated the option
3033  making it a manual code-edit operation to turn it back on. The removal
3034  process has thus started and is now documented in docs/DEPRECATE.md so
3035  remove from the TODO to avoid anyone looking for something to pick up
3036  spend cycles on an already in-progress entry.
3037
3038  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3039
3040Jay Satiro (29 Nov 2018)
3041- [Sevan Janiyan brought this change]
3042
3043  connect: fix building for recent versions of Minix
3044
3045  EBADIOCTL doesn't exist on more recent Minix.
3046  There have also been substantial changes to the network stack.
3047  Fixes build on Minix 3.4rc
3048
3049  Closes https://github.com/curl/curl/pull/3323
3050
3051- [Konstantin Kushnir brought this change]
3052
3053  CMake: fix MIT/Heimdal Kerberos detection
3054
3055  - fix syntax error in FindGSS.cmake
3056  - correct krb5 include directory. FindGSS exports
3057    "GSS_INCLUDE_DIR" variable.
3058
3059  Closes https://github.com/curl/curl/pull/3316
3060
3061Daniel Stenberg (28 Nov 2018)
3062- test328: verify Content-Encoding: none
3063
3064  Because of issue #3315
3065
3066  Closes #3317
3067
3068- [James Knight brought this change]
3069
3070  configure: include all libraries in ssl-libs fetch
3071
3072  When compiling a collection of SSL libraries to link against (SSL_LIBS),
3073  ensure all libraries are included. The call `--libs-only-l` can produce
3074  only a subset of found in a `--libs` call (e.x. pthread may be excluded).
3075  Adding `--libs-only-other` ensures other libraries are also included in
3076  the list. This corrects select build environments compiling against a
3077  static version of OpenSSL. Before the change, the following could be
3078  observed:
3079
3080      checking for openssl options with pkg-config... found
3081      configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -lcrypto -lz -ldl "
3082      configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
3083      configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
3084      checking for HMAC_Update in -lcrypto... no
3085      checking for HMAC_Init_ex in -lcrypto... no
3086      checking OpenSSL linking with -ldl... no
3087      checking OpenSSL linking with -ldl and -lpthread... no
3088      configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
3089      configure: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.
3090      ...
3091      SSL support:      no      (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
3092      ...
3093
3094  And include the other libraries when compiling SSL_LIBS succeeds with:
3095
3096      checking for openssl options with pkg-config... found
3097      configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -pthread -lcrypto -lz -ldl -pthread "
3098      configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
3099      configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
3100      checking for HMAC_Update in -lcrypto... yes
3101      checking for SSL_connect in -lssl... yes
3102      ...
3103      SSL support:      enabled (OpenSSL)
3104      ...
3105
3106  Signed-off-by: James Knight <james.d.knight@live.com>
3107  Closes #3193
3108
3109Daniel Gustafsson (26 Nov 2018)
3110- doh: fix typo in infof call
3111
3112  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3113
3114- cmdline-opts/gen.pl: define the correct varname
3115
3116  The variable definition had a small typo making it declare another
3117  variable then the intended.
3118
3119  Closes #3304
3120  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3121
3122Daniel Stenberg (25 Nov 2018)
3123- RELEASE-NOTES: synced
3124
3125- curl_easy_perform: fix timeout handling
3126
3127  curl_multi_wait() was erroneously used from within
3128  curl_easy_perform(). It could lead to it believing there was no socket
3129  to wait for and then instead sleep for a while instead of monitoring the
3130  socket and then miss acting on that activity as swiftly as it should
3131  (causing an up to 1000 ms delay).
3132
3133  Reported-by: Antoni Villalonga
3134  Fixes #3305
3135  Closes #3306
3136  Closes #3308
3137
3138- CURLOPT_WRITEFUNCTION.3: spell out that it gets called many times
3139
3140- cookies: create the cookiejar even if no cookies to save
3141
3142  Important for when the file is going to be read again and thus must not
3143  contain old contents!
3144
3145  Adds test 327 to verify.
3146
3147  Reported-by: daboul on github
3148  Fixes #3299
3149  Closes #3300
3150
3151- checksrc: ban snprintf use, add command line flag to override warns
3152
3153- snprintf: renamed and we now only use msnprintf()
3154
3155  The function does not return the same value as snprintf() normally does,
3156  so readers may be mislead into thinking the code works differently than
3157  it actually does. A different function name makes this easier to detect.
3158
3159  Reported-by: Tomas Hoger
3160  Assisted-by: Daniel Gustafsson
3161  Fixes #3296
3162  Closes #3297
3163
3164- [Tobias Hintze brought this change]
3165
3166  test: update test20/1322 for eglibc bug workaround
3167
3168  The tests 20 and 1322 are using getaddrinfo of libc for resolving. In
3169  eglibc-2.19 there is a memory leakage and invalid free bug which
3170  surfaces in some special circumstances (PF_UNSPEC hint with invalid or
3171  non-existent names). The valgrind runs in testing fail in these
3172  situations.
3173
3174  As the tests 20/1322 are not specific on either protocol (IPv4/IPv6)
3175  this commit changes the hints to IPv4 protocol by passing `--ipv4` flag
3176  on the tests' command line.  This prevents the valgrind failures.
3177
3178- [Tobias Hintze brought this change]
3179
3180  host names: allow trailing dot in name resolve, then strip it
3181
3182  Delays stripping of trailing dots to after resolving the hostname.
3183
3184  Fixes #3022
3185  Closes #3222
3186
3187- [UnknownShadow200 brought this change]
3188
3189  CURLOPT_HEADERFUNCTION.3: match 'nitems' name in synopsis and description
3190
3191  Closes #3295
3192
3193Daniel Gustafsson (21 Nov 2018)
3194- configure: Fix typo in comment
3195
3196Michael Kaufmann (21 Nov 2018)
3197- openssl: support session resume with TLS 1.3
3198
3199  Session resumption information is not available immediately after a TLS 1.3
3200  handshake. The client must wait until the server has sent a session ticket.
3201
3202  Use OpenSSL's "new session" callback to get the session information and put it
3203  into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
3204  after the server has sent a session ticket.
3205
3206  The "new session" callback is invoked only if OpenSSL's session cache is
3207  enabled, so enable it and use the "external storage" mode which lets curl manage
3208  the contents of the session cache.
3209
3210  A pointer to the connection data and the sockindex are now saved as "SSL extra
3211  data" to make them available to the callback.
3212
3213  This approach also works for old SSL/TLS versions and old OpenSSL versions.
3214
3215  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3216
3217  Fixes #3202
3218  Closes #3271
3219
3220- ssl: fix compilation with OpenSSL 0.9.7
3221
3222  - ENGINE_cleanup() was used without including "openssl/engine.h"
3223  - enable engine support for OpenSSL 0.9.7
3224
3225  Closes #3266
3226
3227Daniel Stenberg (21 Nov 2018)
3228- openssl: disable TLS renegotiation with BoringSSL
3229
3230  Since we're close to feature freeze, this change disables this feature
3231  with an #ifdef. Define ALLOW_RENEG at build-time to enable.
3232
3233  This could be converted to a bit for CURLOPT_SSL_OPTIONS to let
3234  applications opt-in this.
3235
3236  Concern-raised-by: David Benjamin
3237  Fixes #3283
3238  Closes #3293
3239
3240- [Romain Fliedel brought this change]
3241
3242  ares: remove fd from multi fd set when ares is about to close the fd
3243
3244  When using c-ares for asyn dns, the dns socket fd was silently closed
3245  by c-ares without curl being aware. curl would then 'realize' the fd
3246  has been removed at next call of Curl_resolver_getsock, and only then
3247  notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
3248  CURL_POLL_REMOVE. At this point the fd is already closed.
3249
3250  By using ares socket state callback (ARES_OPT_SOCK_STATE_CB), this
3251  patch allows curl to be notified that the fd is not longer needed
3252  for neither for write nor read. At this point by calling
3253  Curl_multi_closed we are able to notify multi with CURL_POLL_REMOVE
3254  before the fd is actually closed by ares.
3255
3256  In asyn-ares.c Curl_resolver_duphandle we can't use ares_dup anymore
3257  since it does not allow passing a different sock_state_cb_data
3258
3259  Closes #3238
3260
3261- [Romain Fliedel brought this change]
3262
3263  examples/ephiperfifo: report error when epoll_ctl fails
3264
3265Daniel Gustafsson (20 Nov 2018)
3266- [pkubaj brought this change]
3267
3268  ntlm: Remove redundant ifdef USE_OPENSSL
3269
3270  lib/curl_ntlm.c had code that read as follows:
3271
3272    #ifdef USE_OPENSSL
3273    # ifdef USE_OPENSSL
3274    # else
3275    # ..
3276    # endif
3277    #endif
3278
3279  Remove the redundant USE_OPENSSL along with #else (it's not possible to
3280  reach it anyway). The removed construction is a leftover from when the
3281  SSLeay support was removed.
3282
3283  Closes #3269
3284  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
3285  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3286
3287Daniel Stenberg (20 Nov 2018)
3288- [Han Han brought this change]
3289
3290  ssl: replace all internal uses of CURLE_SSL_CACERT
3291
3292  Closes #3291
3293
3294Han Han (19 Nov 2018)
3295- docs: add more description to unified ssl error codes
3296
3297- curle: move deprecated error code to ifndef block
3298
3299Patrick Monnerat (19 Nov 2018)
3300- os400: add CURLOPT_CURLU to ILE/RPG binding.
3301
3302- os400: Add curl_easy_conn_upkeep() to ILE/RPG binding.
3303
3304- os400: fix return type of curl_easy_pause() in ILE/RPG binding.
3305
3306Daniel Stenberg (19 Nov 2018)
3307- RELEASE-NOTES: synced
3308
3309- impacket: add LICENSE
3310
3311  The license for the impacket package was not in our tree.
3312
3313  Imported now from upstream's
3314  https://github.com/SecureAuthCorp/impacket/blob/master/LICENSE
3315
3316  Reported-by: infinnovation-dev on github
3317  Fixes #3276
3318  Closes #3277
3319
3320Daniel Gustafsson (18 Nov 2018)
3321- tool_doswin: Fix uninitialized field warning
3322
3323  The partial struct initialization in 397664a065abffb7c3445ca9 caused
3324  a warning on uninitialized MODULEENTRY32 struct members:
3325
3326    /src/tool_doswin.c:681:3: warning: missing initializer for field
3327    'th32ModuleID' of 'MODULEENTRY32 {aka struct tagMODULEENTRY32}'
3328    [-Wmissing-field-initializers]
3329
3330  This is sort of a bogus warning as the remaining members will be set
3331  to zero by the compiler, as all omitted members are. Nevertheless,
3332  remove the warning by omitting all members and setting the dwSize
3333  members explicitly.
3334
3335  Closes #3254
3336  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
3337  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
3338
3339- openssl: Remove SSLEAY leftovers
3340
3341  Commit 709cf76f6bb7dbac deprecated USE_SSLEAY, as curl since long isn't
3342  compatible with the SSLeay library. This removes the few leftovers that
3343  were omitted in the less frequently used platform targets.
3344
3345  Closes #3270
3346  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3347
3348Daniel Stenberg (16 Nov 2018)
3349- [Elia Tufarolo brought this change]
3350
3351  http_negotiate: do not close connection until negotiation is completed
3352
3353  Fix HTTP POST using CURLAUTH_NEGOTIATE.
3354
3355  Closes #3275
3356
3357- pop3: only do APOP with a valid timestamp
3358
3359  Brought-by: bobmitchell1956 on github
3360  Fixes #3278
3361  Closes #3279
3362
3363Jay Satiro (16 Nov 2018)
3364- [Peter Wu brought this change]
3365
3366  openssl: do not log excess "TLS app data" lines for TLS 1.3
3367
3368  The SSL_CTX_set_msg_callback callback is not just called for the
3369  Handshake or Alert protocols, but also for the raw record header
3370  (SSL3_RT_HEADER) and the decrypted inner record type
3371  (SSL3_RT_INNER_CONTENT_TYPE). Be sure to ignore the latter to avoid
3372  excess debug spam when using `curl -v` against a TLSv1.3-enabled server:
3373
3374      * TLSv1.3 (IN), TLS app data, [no content] (0):
3375
3376  (Following this message, another callback for the decrypted
3377  handshake/alert messages will be be present anyway.)
3378
3379  Closes https://github.com/curl/curl/pull/3281
3380
3381Marc Hoersken (15 Nov 2018)
3382- tests: disable SO_EXCLUSIVEADDRUSE for stunnel on Windows
3383
3384  SO_EXCLUSIVEADDRUSE is on by default on Vista or newer,
3385  but does not work together with SO_REUSEADDR being on.
3386
3387  The default changes were made with stunnel 5.34 and 5.35.
3388
3389Daniel Stenberg (13 Nov 2018)
3390- [Kamil Dudka brought this change]
3391
3392  nss: remove version selecting dead code
3393
3394  Closes #3262
3395
3396- nss: set default max-tls to 1.3/1.2
3397
3398  Fixes #3261
3399
3400Daniel Gustafsson (13 Nov 2018)
3401- tool_cb_wrt: Silence function cast compiler warning
3402
3403  Commit 5bfaa86ceb3c2a9ac474a928e748c4a86a703b33 introduced a new
3404  compiler warning on Windows cross compilation with GCC. See below
3405  for an example of the warning from the autobuild logs (whitespace
3406  edited to fit):
3407
3408  /src/tool_cb_wrt.c:175:9: warning: cast from function call of type
3409      'intptr_t {aka long long int}' to non-matching type 'void *'
3410      [-Wbad-function-cast]
3411  (HANDLE) _get_osfhandle(fileno(outs->stream)),
3412  ^
3413
3414  Store the return value from _get_osfhandle() in an intermediate
3415  variable and cast the variable in WriteConsoleW() rather than the
3416  function call directly to avoid a compiler warning.
3417
3418  In passing, also add inspection of the MultiByteToWideChar() return
3419  value and return failure in case an error is reported.
3420
3421  Closes #3263
3422  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
3423  Reviewed-by: Viktor Szakats <commit@vszakats.net>
3424
3425Daniel Stenberg (12 Nov 2018)
3426- nss: fix fallthrough comment to fix picky compiler warning
3427
3428- docs: expanded on some CURLU details
3429
3430- [Tim Rühsen brought this change]
3431
3432  ftp: avoid two unsigned int overflows in FTP listing parser
3433
3434  Curl_ftp_parselist: avoid unsigned integer overflows
3435
3436  The overflow has no real world impact, just avoid it for "best
3437  practice".
3438
3439  Closes #3225
3440
3441- curl: --local-port range was not "including"
3442
3443  The end port number in a given range was not included in the range used,
3444  as it is documented to be.
3445
3446  Reported-by: infinnovation-dev on github
3447  Fixes #3251
3448  Closes #3255
3449
3450- [Jérémy Rocher brought this change]
3451
3452  openssl: support BoringSSL TLS renegotiation
3453
3454  As per BoringSSL porting documentation [1], BoringSSL rejects peer
3455  renegotiations by default.
3456
3457  curl fails when trying to authenticate to server through client
3458  certificate if it is requested by server after the initial TLS
3459  handshake.
3460
3461  Enable renegotiation by default with BoringSSL to get same behavior as
3462  with OpenSSL. This is done by calling SSL_set_renegotiate_mode [2]
3463  which was introduced in commit 1d5ef3bb1eb9 [3].
3464
3465  1 - https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md#tls-renegotiation
3466  2 - https://boringssl.googlesource.com/boringssl/+/master/include/openssl/ssl.h#3482
3467  3 - https://boringssl.googlesource.com/boringssl/+/1d5ef3bb1eb97848617db5e7d633d735a401df86
3468
3469  Signed-off-by: Jérémy Rocher <rocher.jeremy@gmail.com>
3470  Fixes #3258
3471  Closes #3259
3472
3473- HISTORY: add some milestones
3474
3475  Added a few of the more notable milestones in curl history that were
3476  missing. Primarily more recent ones but I also noted some older that
3477  could be worth mentioning.
3478
3479  [ci skip]
3480  Closes #3257
3481
3482Daniel Gustafsson (9 Nov 2018)
3483- KNOWN_BUGS: add --proxy-any connection issue
3484
3485  Add the identified issue with --proxy-any and proxy servers which
3486  advertise authentication schemes other than the supported one.
3487
3488  Closes #876
3489  Closes #3250
3490  Reported-by: NTMan on Github
3491  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3492
3493Daniel Stenberg (9 Nov 2018)
3494- [Jim Fuller brought this change]
3495
3496  setopt: add CURLOPT_CURLU
3497
3498  Allows an application to pass in a pre-parsed URL via a URL handle.
3499
3500  Closes #3227
3501
3502- [Gisle Vanem brought this change]
3503
3504  docs: ESCape "\n" codes
3505
3506  Groff / Troff will display a:
3507   printaf("Errno: %ld\n", error);
3508  as:
3509    printf("Errno: %ld0, error);
3510
3511  when a "\n" is not escaped. Use "\\n" instead.
3512
3513  Closes #3246
3514
3515- curl: --local-port fix followup
3516
3517  Regression by 52db54869e6.
3518
3519  Reported-by: infinnovation-dev on github
3520  Fixes #3248
3521  Closes #3249
3522
3523GitHub (7 Nov 2018)
3524- [Gisle Vanem brought this change]
3525
3526  More "\n" ESCaping
3527
3528Daniel Stenberg (7 Nov 2018)
3529- RELEASE-NOTES: synced
3530
3531- curl: fix --local-port integer overflow
3532
3533  The tool's local port command line range parser didn't check for integer
3534  overflows and could pass "weird" data to libcurl for this option.
3535  libcurl however, has a strict range check for the values so it rejects
3536  anything outside of the accepted range.
3537
3538  Reported-by: Brian Carpenter
3539  Closes #3242
3540
3541- curl: correct the switch() logic in ourWriteOut
3542
3543  Follow-up to e431daf013, as I did the wrong correction for a compiler
3544  warning. It should be a break and not a fall-through.
3545
3546  Pointed-out-by: Frank Gevaerts
3547
3548- [Frank Gevaerts brought this change]
3549
3550  curl: add %{stderr} and %{stdout} for --write-out
3551
3552  Closes #3115
3553
3554Daniel Gustafsson (7 Nov 2018)
3555- winssl: be consistent in Schannel capitalization
3556
3557  The productname from Microsoft is "Schannel", but in infof/failf
3558  reporting we use "schannel". This removes different versions.
3559
3560  Closes #3243
3561  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3562
3563Daniel Stenberg (7 Nov 2018)
3564- TODO: Have the URL API offer IDN decoding
3565
3566  Similar to how URL decoding/encoding is done, we could have URL
3567  functions to convert IDN host names to punycode.
3568
3569  Suggested-by: Alexey Melnichuk
3570  Closes #3232
3571
3572- urlapi: only skip encoding the first '=' with APPENDQUERY set
3573
3574  APPENDQUERY + URLENCODE would skip all equals signs but now it only skip
3575  encoding the first to better allow "name=content" for any content.
3576
3577  Reported-by: Alexey Melnichuk
3578  Fixes #3231
3579  Closes #3231
3580
3581- url: a short host name + port is not a scheme
3582
3583  The function identifying a leading "scheme" part of the URL considered a
3584  few letters ending with a colon to be a scheme, making something like
3585  "short:80" to become an unknown scheme instead of a short host name and
3586  a port number.
3587
3588  Extended test 1560 to verify.
3589
3590  Also fixed test203 to use file_pwd to make it get the correct path on
3591  windows. Removed test 2070 since it was a duplicate of 203.
3592
3593  Assisted-by: Marcel Raad
3594  Reported-by: Hagai Auro
3595  Fixes #3220
3596  Fixes #3233
3597  Closes #3223
3598  Closes #3235
3599
3600- [Sangamkar brought this change]
3601
3602  libcurl: stop reading from paused transfers
3603
3604  In the transfer loop it would previously not acknwledge the pause bit
3605  and continue until drained or loop ended.
3606
3607  Closes #3240
3608
3609Jay Satiro (6 Nov 2018)
3610- tool: add undocumented option --dump-module-paths for win32
3611
3612  - Add an undocumented diagnostic option for Windows to show the full
3613    paths of all loaded modules regardless of whether or not libcurl
3614    initialization succeeds.
3615
3616  This is needed so that in the CI we can get a list of all DLL
3617  dependencies after initialization (when they're most likely to have
3618  finished loading) and then package them as artifacts so that a
3619  functioning build can be downloaded. Also I imagine it may have some use
3620  as a diagnostic for help requests.
3621
3622  Ref: https://github.com/curl/curl/pull/3103
3623
3624  Closes https://github.com/curl/curl/pull/3208
3625
3626- curl_multibyte: fix a malloc overcalculation
3627
3628  Prior to this change twice as many bytes as necessary were malloc'd when
3629  converting wchar to UTF8. To allay confusion in the future I also
3630  changed the variable name for the amount of bytes from len to bytes.
3631
3632  Closes https://github.com/curl/curl/pull/3209
3633
3634Michael Kaufmann (5 Nov 2018)
3635- netrc: don't ignore the login name specified with "--user"
3636
3637  - for "--netrc", don't ignore the login/password specified with "--user",
3638    only ignore the login/password in the URL.
3639    This restores the netrc behaviour of curl 7.61.1 and earlier.
3640  - fix the documentation of CURL_NETRC_REQUIRED
3641  - improve the detection of login/password changes when reading .netrc
3642  - don't read .netrc if both login and password are already set
3643
3644  Fixes #3213
3645  Closes #3224
3646
3647Patrick Monnerat (5 Nov 2018)
3648- OS400: add URL API ccsid wrappers and sync ILE/RPG bindings
3649
3650Daniel Stenberg (5 Nov 2018)
3651- [Yasuhiro Matsumoto brought this change]
3652
3653  curl: fixed UTF-8 in current console code page (Windows)
3654
3655  Fixes #3211
3656  Fixes #3175
3657  Closes #3212
3658
3659- TODO: 2.6 multi upkeep
3660
3661  Closes #3199
3662
3663Daniel Gustafsson (5 Nov 2018)
3664- unittest: make 1652 stable across collations
3665
3666  The previous coding used a format string whose output depended on the
3667  current locale of the environment running the test. Since the gist of
3668  the test is to have a format string, with the actual formatting being
3669  less important, switch to a more stable formatstring with decimals.
3670
3671  Reported-by: Marcel Raad
3672  Closes #3234
3673  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3674  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
3675
3676Daniel Stenberg (5 Nov 2018)
3677- Revert "url: a short host name + port is not a scheme"
3678
3679  This reverts commit 226cfa8264cd979eff3fd52c0f3585ef095e7cf2.
3680
3681  This commit caused test failures on appveyor/windows. Work on fixing them is
3682  in #3235.
3683
3684- symbols-in-versions: add missing CURLU_ symbols
3685
3686  ...and fix symbol-scan.pl to also scan urlapi.h
3687
3688  Reported-by: Alexey Melnichuk
3689  Fixes #3226
3690  Closes #3230
3691
3692Daniel Gustafsson (3 Nov 2018)
3693- infof: clearly indicate truncation
3694
3695  The internal buffer in infof() is limited to 2048 bytes of payload plus
3696  an additional byte for NULL termination. Servers with very long error
3697  messages can however cause truncation of the string, which currently
3698  isn't very clear, and leads to badly formatted output.
3699
3700  This appends a "...\n" (or just "..." in case the format didn't with a
3701  newline char) marker to the end of the string to clearly show
3702  that it has been truncated.
3703
3704  Also include a unittest covering infof() to try and catch any bugs
3705  introduced in this quite important function.
3706
3707  Closes #3216
3708  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3709  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
3710
3711Michael Kaufmann (3 Nov 2018)
3712- tool_getparam: fix some comments
3713
3714Daniel Stenberg (3 Nov 2018)
3715- url: a short host name + port is not a scheme
3716
3717  The function identifying a leading "scheme" part of the URL considered a few
3718  letters ending with a colon to be a scheme, making something like "short:80"
3719  to become an unknown scheme instead of a short host name and a port number.
3720
3721  Extended test 1560 to verify.
3722
3723  Reported-by: Hagai Auro
3724  Fixes #3220
3725  Closes #3223
3726
3727- URL: fix IPv6 numeral address parser
3728
3729  Regression from 46e164069d1a52. Extended test 1560 to verify.
3730
3731  Reported-by: tpaukrt on github
3732  Fixes #3218
3733  Closes #3219
3734
3735- travis: remove curl before a normal build
3736
3737  on Linux. To make sure the test suite runs with its newly build tool and
3738  doesn't require an external one present.
3739
3740  Bug: #3198
3741  Closes #3200
3742
3743- [Tim Rühsen brought this change]
3744
3745  mprintf: avoid unsigned integer overflow warning
3746
3747  The overflow has no real world impact.
3748  Just avoid it for "best practice".
3749
3750  Code change suggested by "The Infinnovation Team" and Daniel Stenberg.
3751  Closes #3184
3752
3753- Curl_follow: accept non-supported schemes for "fake" redirects
3754
3755  When not actually following the redirect and the target URL is only
3756  stored for later retrieval, curl always accepted "non-supported"
3757  schemes. This was a regression from 46e164069d1a5230.
3758
3759  Reported-by: Brad King
3760  Fixes #3210
3761  Closes #3215
3762
3763Daniel Gustafsson (2 Nov 2018)
3764- openvms: fix example name
3765
3766  Commit efc696a2e09225bfeab4 renamed persistant.c to persistent.c to
3767  fix the typo in the name, but missed to update the OpenVMS package
3768  files which still looked for the old name.
3769
3770  Closes #3217
3771  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3772  Reviewed-by: Viktor Szakats <commit@vszakats.net>
3773
3774Daniel Stenberg (1 Nov 2018)
3775- configure: show CFLAGS, LDFLAGS etc in summary
3776
3777  To make it easier to understand other people's and remote builds etc.
3778
3779  Closes #3207
3780
3781- version: bump for next cycle
3782
3783- axtls: removed
3784
3785  As has been outlined in the DEPRECATE.md document, the axTLS code has
3786  been disabled for 6 months and is hereby removed.
3787
3788  Use a better supported TLS library!
3789
3790  Assisted-by: Daniel Gustafsson
3791  Closes #3194
3792
3793- [marcosdiazr brought this change]
3794
3795  schannel: make CURLOPT_CERTINFO support using Issuer chain
3796
3797  Closes #3197
3798
3799- travis: build with sanitize=address,undefined,signed-integer-overflow
3800
3801  ... using clang
3802
3803  Closes #3190
3804
3805- schannel: use Curl_ prefix for global private symbols
3806
3807  Curl_verify_certificate() must use the Curl_ prefix since it is globally
3808  available in the lib and otherwise steps outside of our namespace!
3809
3810  Closes #3201
3811
3812Kamil Dudka (1 Nov 2018)
3813- tests: drop http_pipe.py script no longer used
3814
3815  It is unused since commit f7208df7d9d5cd5e15e2d89237e828f32b63f135.
3816
3817  Closes #3204
3818
3819Daniel Stenberg (31 Oct 2018)
3820- runtests: use the local curl for verifying
3821
3822  ... revert the mistaken change brought in commit 8440616f53.
3823
3824  Reported-by: Alessandro Ghedini
3825  Bug: https://curl.haxx.se/mail/lib-2018-10/0118.html
3826
3827  Closes #3198
3828
3829Version 7.62.0 (30 Oct 2018)
3830
3831Daniel Stenberg (30 Oct 2018)
3832- RELEASE-NOTES: 7.62.0
3833
3834- THANKS: 7.62.0 status
3835
3836Daniel Gustafsson (30 Oct 2018)
3837- vtls: add MesaLink to curl_sslbackend enum
3838
3839  MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
3840  backend was never added to the curl_sslbackend enum in curl/curl.h.
3841  This adds the new backend to the enum and updates the relevant docs.
3842
3843  Closes #3195
3844  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3845
3846Daniel Stenberg (30 Oct 2018)
3847- [Ruslan Baratov brought this change]
3848
3849  cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
3850
3851  Closes #3191
3852
3853- test2080: verify the fix for CVE-2018-16842
3854
3855- voutf: fix bad arethmetic when outputting warnings to stderr
3856
3857  CVE-2018-16842
3858  Reported-by: Brian Carpenter
3859  Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
3860
3861- [Tuomo Rinne brought this change]
3862
3863  cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
3864
3865  Closes #3123
3866
3867- [Tuomo Rinne brought this change]
3868
3869  cmake: add find_dependency call for ZLIB to CMake config file
3870
3871- [Tuomo Rinne brought this change]
3872
3873  cmake: add support for transitive ZLIB target
3874
3875- unit1650: fix "null pointer passed as argument 1 to memcmp"
3876
3877  Detected by UndefinedBehaviorSanitizer
3878
3879  Closes #3187
3880
3881- travis: add a "make tidy" build that runs clang-tidy
3882
3883  Closes #3182
3884
3885- unit1300: fix stack-use-after-scope AddressSanitizer warning
3886
3887  Closes #3186
3888
3889- Curl_auth_create_plain_message: fix too-large-input-check
3890
3891  CVE-2018-16839
3892  Reported-by: Harry Sintonen
3893  Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
3894
3895- Curl_close: clear data->multi_easy on free to avoid use-after-free
3896
3897  Regression from b46cfbc068 (7.59.0)
3898  CVE-2018-16840
3899  Reported-by: Brian Carpenter (Geeknik Labs)
3900
3901  Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
3902
3903- [randomswdev brought this change]
3904
3905  system.h: use proper setting with Sun C++ as well
3906
3907  system.h selects the proper Sun settings when __SUNPRO_C is defined. The
3908  Sun compiler does not define it when compiling C++ files.  I'm adding a
3909  check also on __SUNPRO_CC to allow curl to work properly also when used
3910  in a C++ project on Sun Solaris.
3911
3912  Closes #3181
3913
3914- rand: add comment to skip a clang-tidy false positive
3915
3916- test1651: unit test Curl_extract_certinfo()
3917
3918  The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
3919
3920- x509asn1: always check return code from getASN1Element()
3921
3922- Makefile: add 'tidy' target that runs clang-tidy
3923
3924  Available in the root, src and lib dirs.
3925
3926  Closes #3163
3927
3928- RELEASE-PROCEDURE: adjust the release dates
3929
3930  See: https://curl.haxx.se/mail/lib-2018-10/0107.html
3931
3932Patrick Monnerat (27 Oct 2018)
3933- x509asn1: suppress left shift on signed value
3934
3935  Use an unsigned variable: as the signed operation behavior is undefined,
3936  this change silents clang-tidy about it.
3937
3938  Ref: https://github.com/curl/curl/pull/3163
3939  Reported-By: Daniel Stenberg
3940
3941Michael Kaufmann (27 Oct 2018)
3942- multi: Fix error handling in the SENDPROTOCONNECT state
3943
3944  If Curl_protocol_connect() returns an error code,
3945  handle the error instead of switching to the next state.
3946
3947  Closes #3170
3948
3949Daniel Stenberg (27 Oct 2018)
3950- RELEASE-NOTES: synced
3951
3952- openssl: output the correct cipher list on TLS 1.3 error
3953
3954  When failing to set the 1.3 cipher suite, the wrong string pointer would
3955  be used in the error message. Most often saying "(nil)".
3956
3957  Reported-by: Ricky-Tigg on github
3958  Fixes #3178
3959  Closes #3180
3960
3961- docs/CIPHERS: fix the TLS 1.3 cipher names
3962
3963  ... picked straight from the OpenSSL man page:
3964  https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
3965
3966  Reported-by: Ricky-Tigg on github
3967  Bug: #3178
3968
3969Marcel Raad (27 Oct 2018)
3970- travis: install gnutls-bin package
3971
3972  This is required for gnutls-serv, which enables a few more tests.
3973
3974  Closes https://github.com/curl/curl/pull/2958
3975
3976Daniel Gustafsson (26 Oct 2018)
3977- ssh: free the session on init failures
3978
3979  Ensure to clear the session object in case the libssh2 initialization
3980  fails.
3981
3982  It could be argued that the libssh2 error function should be called to
3983  get a proper error message in this case. But since the only error path
3984  in libssh2_knownhost_init() is memory a allocation failure it's safest
3985  to avoid since the libssh2 error handling allocates memory.
3986
3987  Closes #3179
3988  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3989
3990Daniel Stenberg (26 Oct 2018)
3991- docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
3992
3993  ... I'm moving it up one week due to travels. The rest stays.
3994
3995- [Daniel Gustafsson brought this change]
3996
3997  openssl: make 'done' a proper boolean
3998
3999  Closes #3176
4000
4001- gtls: Values stored to but never read
4002
4003  Detected by clang-tidy
4004
4005  Closes #3176
4006
4007- [Alexey Eremikhin brought this change]
4008
4009  curl.1: --ipv6 mutexes ipv4 (fixed typo)
4010
4011  Fixes #3171
4012  Closes #3172
4013
4014- tool_main: make TerminalSettings static
4015
4016  Reported-by: Gisle Vanem
4017  Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
4018  Closes #3161
4019
4020- curl-config.in: remove dependency on bc
4021
4022  Reported-by: Dima Pasechnik
4023  Fixes #3143
4024  Closes #3174
4025
4026- [Gisle Vanem brought this change]
4027
4028  rtmp: fix for compiling with lwIP
4029
4030  Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
4031    curl_rtmp.c(223,3):  error: use of undeclared identifier 'setsockopt'
4032      setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
4033      ^
4034    curl_rtmp.c(41,32):  note: expanded from macro 'setsockopt'
4035    #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
4036                                   ^
4037  Closes #3155
4038
4039- configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
4040
4041  Follow-up to #3166 which did the cmake part of this. This type/define is
4042  not used.
4043
4044  Closes #3168
4045
4046- [Ruslan Baratov brought this change]
4047
4048  cmake: remove unused variables
4049
4050  Remove variables:
4051  * HAVE_SOCKLEN_T
4052  * CURL_SIZEOF_CURL_SOCKLEN_T
4053  * CURL_TYPEOF_CURL_SOCKLEN_T
4054
4055  Closes #3166
4056
4057Michael Kaufmann (25 Oct 2018)
4058- urldata: Fix comment in header
4059
4060  The "connecting" function is used by multiple protocols, not only FTP
4061
4062- netrc: free temporary strings if memory allocation fails
4063
4064  - Change the inout parameters after all needed memory has been
4065    allocated. Do not change them if something goes wrong.
4066  - Free the allocated temporary strings if strdup() fails.
4067
4068  Closes #3122
4069
4070Daniel Stenberg (24 Oct 2018)
4071- [Ruslan Baratov brought this change]
4072
4073  config: Remove unused SIZEOF_VOIDP
4074
4075  Closes #3162
4076
4077- RELEASE-NOTES: synced
4078
4079GitHub (23 Oct 2018)
4080- [Gisle Vanem brought this change]
4081
4082  Fix for compiling with lwIP (3)
4083
4084  lwIP on Windows does not have a WSAIoctl() function.
4085  But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.
4086
4087Daniel Stenberg (23 Oct 2018)
4088- Curl_follow: return better errors on URL problems
4089
4090  ... by making the converter function global and accessible.
4091
4092  Closes #3153
4093
4094- Curl_follow: remove remaining free(newurl)
4095
4096  Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
4097  URL.
4098
4099  Reported-by: Michael Kaufmann
4100  Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
4101  ent-30985666
4102
4103Daniel Gustafsson (23 Oct 2018)
4104- headers: end all headers with guard comment
4105
4106  Most headerfiles end with a /* <headerguard> */ comment, but it was
4107  missing from some. The comment isn't the most important part of our
4108  code documentation but consistency has an intrinsic value in itself.
4109  This adds header guard comments to the files that were lacking it.
4110
4111  Closes #3158
4112  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
4113  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4114
4115Jay Satiro (23 Oct 2018)
4116- CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
4117
4118  Closes https://github.com/curl/curl/pull/3159
4119
4120Daniel Stenberg (20 Oct 2018)
4121- docs/BUG-BOUNTY: the sponsors actually decide the amount
4122
4123  Retract the previous approach as the sponsors will be the ones to set the
4124  final amounts.
4125
4126  Closes #3152
4127  [ci skip]
4128
4129- multi: avoid double-free
4130
4131  Curl_follow() no longer frees the string. Make sure it happens in the
4132  caller function, like we normally handle allocations.
4133
4134  This bug was introduced with the use of the URL API internally, it has
4135  never been in a release version
4136
4137  Reported-by: Dario Weißer
4138  Closes #3149
4139
4140- multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
4141
4142  Otherwise, closing that handle can still cause surprises!
4143
4144  Reported-by: Martin Ankerl
4145  Fixes #3138
4146  Closes #3147
4147
4148Marcel Raad (19 Oct 2018)
4149- VS projects: add USE_IPV6
4150
4151  The Visual Studio builds didn't use IPv6. Add it to all projects since
4152  Visual Studio 2008, which is verified to build via AppVeyor.
4153
4154  Closes https://github.com/curl/curl/pull/3137
4155
4156- config_win32: enable LDAPS
4157
4158  As done in the autotools and CMake builds by default.
4159
4160  Closes https://github.com/curl/curl/pull/3137
4161
4162Daniel Stenberg (18 Oct 2018)
4163- travis: add build for "configure --disable-verbose"
4164
4165  Closes #3144
4166
4167Kamil Dudka (17 Oct 2018)
4168- tool_cb_hdr: handle failure of rename()
4169
4170  Detected by Coverity.
4171
4172  Closes #3140
4173  Reviewed-by: Jay Satiro
4174
4175Daniel Stenberg (17 Oct 2018)
4176- RELEASE-NOTES: synced
4177
4178- docs/SECURITY-PROCESS: the hackerone IBB program drops curl
4179
4180  ... now there's only BountyGraph.
4181
4182Jay Satiro (16 Oct 2018)
4183- [Matthew Whitehead brought this change]
4184
4185  x509asn1: Fix SAN IP address verification
4186
4187  For IP addresses in the subject alternative name field, the length
4188  of the IP address (and hence the number of bytes to perform a
4189  memcmp on) is incorrectly calculated to be zero. The code previously
4190  subtracted q from name.end. where in a successful case q = name.end
4191  and therefore addrlen equalled 0. The change modifies the code to
4192  subtract name.beg from name.end to calculate the length correctly.
4193
4194  The issue only affects libcurl with GSKit SSL, not other SSL backends.
4195  The issue is not a security issue as IP verification would always fail.
4196
4197  Fixes #3102
4198  Closes #3141
4199
4200Daniel Gustafsson (15 Oct 2018)
4201- INSTALL: mention mesalink in TLS section
4202
4203  Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
4204  MesaLink vtls backend, but missed updating the TLS section containing
4205  supported backends in the docs.
4206
4207  Closes #3134
4208  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4209
4210Marcel Raad (14 Oct 2018)
4211- nonblock: fix unused parameter warning
4212
4213  If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
4214  used.
4215
4216Michael Kaufmann (13 Oct 2018)
4217- Curl_follow: Always free the passed new URL
4218
4219  Closes #3124
4220
4221Viktor Szakats (12 Oct 2018)
4222- replace rawgit links [ci skip]
4223
4224  Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
4225  Ref: https://news.ycombinator.com/item?id=18202481
4226  Closes https://github.com/curl/curl/pull/3131
4227
4228Daniel Stenberg (12 Oct 2018)
4229- docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
4230
4231  [ci skip]
4232
4233- travis: make distcheck scan for BOM markers
4234
4235  and remove BOM from projects/wolfssl_override.props
4236
4237  Closes #3126
4238
4239Marcel Raad (11 Oct 2018)
4240- CMake: remove BOM
4241
4242  Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
4243
4244  Reported-by: Viktor Szakats
4245  Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136
4246
4247Daniel Gustafsson (10 Oct 2018)
4248- transfer: fix typo in comment
4249
4250Michael Kaufmann (10 Oct 2018)
4251- docs: add "see also" links for SSL options
4252
4253  - link TLS 1.2 and TLS 1.3 options
4254  - link proxy and non-proxy options
4255
4256  Closes #3121
4257
4258Marcel Raad (10 Oct 2018)
4259- AppVeyor: remove BDIR variable that sneaked in again
4260
4261  Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
4262  again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.
4263
4264- CMake: disable -Wpedantic-ms-format
4265
4266  As done in the autotools build. This is required for MinGW, which
4267  supports only %I64 for printing 64-bit values, but warns about it.
4268
4269  Closes https://github.com/curl/curl/pull/3120
4270
4271Viktor Szakats (9 Oct 2018)
4272- ldap: show precise LDAP call in error message on Windows
4273
4274  Also add a unique but common text ('bind via') to make it
4275  easy to grep this specific failure regardless of platform.
4276
4277  Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
4278  Closes https://github.com/curl/curl/pull/3118
4279  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4280  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
4281
4282Daniel Stenberg (9 Oct 2018)
4283- docs/DEPRECATE: minor reformat to render nicer on web
4284
4285Daniel Gustafsson (9 Oct 2018)
4286- CURLOPT_SSL_VERIFYSTATUS: Fix typo
4287
4288  Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
4289
4290Marcel Raad (9 Oct 2018)
4291- curl_setup: define NOGDI on Windows
4292
4293  This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
4294  on MinGW.
4295
4296  Closes https://github.com/curl/curl/pull/3113
4297
4298- Windows: fixes for MinGW targeting Windows Vista
4299
4300  Classic MinGW has neither InitializeCriticalSectionEx nor
4301  GetTickCount64, independent of the target Windows version.
4302
4303  Closes https://github.com/curl/curl/pull/3113
4304
4305Daniel Stenberg (8 Oct 2018)
4306- TODO: fixed 'API for URL parsing/splitting'
4307
4308Daniel Gustafsson (8 Oct 2018)
4309- KNOWN_BUGS: Fix various typos
4310
4311  Closes #3112
4312  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4313
4314Viktor Szakats (8 Oct 2018)
4315- spelling fixes [ci skip]
4316
4317  as detected by codespell 1.14.0
4318
4319  Closes https://github.com/curl/curl/pull/3114
4320  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
4321
4322Daniel Stenberg (8 Oct 2018)
4323- RELEASE-NOTES: synced
4324
4325- curl_ntlm_wb: check aprintf() return codes
4326
4327  ... when they return NULL we're out of memory and MUST return failure.
4328
4329  closes #3111
4330
4331- docs/BUG-BOUNTY: proposed additional docs
4332
4333  Bug bounty explainer. See https://bountygraph.com/programs/curl
4334
4335  Closes #3067
4336
4337- [Rick Deist brought this change]
4338
4339  hostip: fix check on Curl_shuffle_addr return value
4340
4341  Closes #3110
4342
4343- FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
4344
4345  Now FILE transfers send headers to the header callback like HTTP and
4346  other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
4347  work for FILE in the callbacks.
4348
4349  Makes "curl -i file://.." and "curl -I file://.." work like before
4350  again. Applied the bold header logic to them too.
4351
4352  Regression from c1c2762 (7.61.0)
4353
4354  Reported-by: Shaun Jackman
4355  Fixes #3083
4356  Closes #3101
4357
4358Daniel Gustafsson (7 Oct 2018)
4359- gskit: make sure to terminate version string
4360
4361  In case a very small buffer was passed to the version function, it could
4362  result in the buffer not being NULL-terminated since strncpy() doesn't
4363  guarantee a terminator on an overflowed buffer. Rather than adding code
4364  to terminate (and handle zero-sized buffers), move to using snprintf()
4365  instead like all the other vtls backends.
4366
4367  Closes #3105
4368  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4369  Reviewed-by: Viktor Szakats <commit@vszakats.net>
4370
4371- TODO: add LD_PRELOAD support on macOS
4372
4373  Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.
4374
4375- runtests: skip ld_preload tests on macOS
4376
4377  The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
4378  requiring it.
4379
4380  Fixes #2394
4381  Closes #3106
4382  Reported-by: Github user @jakirkham
4383  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4384
4385Marcel Raad (7 Oct 2018)
4386- AppVeyor: use Debug builds to run tests
4387
4388  This enables more tests.
4389
4390  Closes https://github.com/curl/curl/pull/3104
4391
4392- AppVeyor: add HTTP_ONLY build
4393
4394  Closes https://github.com/curl/curl/pull/3104
4395
4396- AppVeyor: add WinSSL builds
4397
4398  Use the oldest and latest Windows SDKs for them.
4399  Also, remove all but one OpenSSL build.
4400
4401  Closes https://github.com/curl/curl/pull/3104
4402
4403- AppVeyor: add remaining Visual Studio versions
4404
4405  This adds Visual Studio 9 and 10 builds.
4406  There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
4407  build. Also, VC9 cannot be used for running the test suite.
4408
4409  Closes https://github.com/curl/curl/pull/3104
4410
4411- AppVeyor: break long line
4412
4413  Closes https://github.com/curl/curl/pull/3104
4414
4415- AppVeyor: remove unused BDIR variable
4416
4417  Closes https://github.com/curl/curl/pull/3104
4418
4419Daniel Stenberg (6 Oct 2018)
4420- test2100: test DoH using IPv4-only
4421
4422  To make it only send one DoH request and avoid the race condition that
4423  could lead to the requests getting sent in reversed order and thus
4424  making it hard to compare in the test case.
4425
4426  Fixes #3107
4427  Closes #3108
4428
4429- tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
4430
4431  [ci skip]
4432
4433- RELEASE-NOTES: synced
4434
4435- [Dmitry Kostjuchenko brought this change]
4436
4437  timeval: fix use of weak symbol clock_gettime() on Apple platforms
4438
4439  Closes #3048
4440
4441- doh: keep the IPv4 address in (original) network byte order
4442
4443  Ideally this will fix the reversed order shown in SPARC tests:
4444
4445    resp 8: Expected 127.0.0.1 got 1.0.0.127
4446
4447  Closes #3091
4448
4449Jay Satiro (5 Oct 2018)
4450- INTERNALS.md: wrap lines longer than 79
4451
4452Daniel Gustafsson (5 Oct 2018)
4453- INTERNALS: escape reference to parameter
4454
4455  The parameter reference <string> was causing rendering issues in the
4456  generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
4457  tick escaping it.
4458
4459  Closes #3099
4460  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
4461  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4462
4463- checksrc: handle zero scoped ignore commands
4464
4465  If a !checksrc! disable command specified to ignore zero errors, it was
4466  still added to the ignore block even though nothing was ignored. While
4467  there were no blocks ignored that shouldn't be ignored, the processing
4468  ended with with a warning:
4469
4470  <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
4471   /* !checksrc! disable LONGLINE 0 */
4472                      ^
4473  Fix by instead treating a zero ignore as a a badcommand and throw a
4474  warning for that one.
4475
4476  Closes #3096
4477  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4478
4479- checksrc: enable strict mode and warnings
4480
4481  Enable strict and warnings mode for checksrc to ensure we aren't missing
4482  anything due to bugs in the checking code. This uncovered a few things
4483  which are all fixed in this commit:
4484
4485  * several variables were used uninitialized
4486  * several variables were not defined in the correct scope
4487  * the whitelist filehandle was read even if the file didn't exist
4488  * the enable_warn() call when a disable counter had expired was passing
4489    incorrect variables, but since the checkwarn() call is unlikely to hit
4490    (the counter is only decremented to zero on actual ignores) it didn't
4491    manifest a problem.
4492
4493  Closes #3090
4494  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4495  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
4496
4497Marcel Raad (5 Oct 2018)
4498- CMake: suppress MSVC warning C4127 for libtest
4499
4500  It's issued by older Windows SDKs (prior to version 8.0).
4501
4502Sergei Nikulov (5 Oct 2018)
4503- Merge branch 'dmitrykos-fix_missing_CMake_defines'
4504
4505- [Dmitry Kostjuchenko brought this change]
4506
4507  cmake: test and set missed defines during configuration
4508
4509  Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
4510
4511  Closes #3097
4512
4513Marcel Raad (5 Oct 2018)
4514- AppVeyor: disable test 500
4515
4516  It almost always results in
4517  "starttransfer vs total: 0.000001 0.000000".
4518  I cannot reproduce this locally, so disable it for now.
4519
4520  Closes https://github.com/curl/curl/pull/3100
4521
4522- AppVeyor: set custom install prefix
4523
4524  CMake's default has spaces and in 32-bit mode parentheses, which result
4525  in syntax errors in curl-config.
4526
4527  Closes https://github.com/curl/curl/pull/3100
4528
4529- AppVeyor: Remove non-SSL non-test builds
4530
4531  They don't add much value.
4532
4533  Closes https://github.com/curl/curl/pull/3100
4534
4535- AppVeyor: run test suite
4536
4537  Use the preinstalled MSYS2 bash for that.
4538  Disable test 1139 as the CMake build doesn't generate curl.1.
4539
4540  Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
4541  Closes https://github.com/curl/curl/pull/3100
4542
4543- AppVeyor: use in-tree build
4544
4545  Required to run the tests.
4546
4547  Closes https://github.com/curl/curl/pull/3100
4548
4549Daniel Stenberg (4 Oct 2018)
4550- doh: make sure TTL isn't re-inited by second (discarded?) response
4551
4552  Closes #3092
4553
4554- test320: strip out more HTML when comparing
4555
4556  To make the test case work with different gnutls-serv versions better.
4557
4558  Reported-by: Kamil Dudka
4559  Fixes #3093
4560  Closes #3094
4561
4562Marcel Raad (4 Oct 2018)
4563- runtests: use Windows paths for Windows curl
4564
4565  curl generated by CMake's Visual Studio generator has "Windows" in the
4566  version number.
4567
4568Daniel Stenberg (4 Oct 2018)
4569- [Colin Hogben brought this change]
4570
4571  tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
4572
4573  Fix problems caused by differences in treatment of bytes objects between
4574  python2 and python3.
4575
4576  Fixes #2929
4577  Closes #3080
4578
4579Daniel Gustafsson (3 Oct 2018)
4580- memory: ensure to check allocation results
4581
4582  The result of a memory allocation should always be checked, as we may
4583  run under memory pressure where even a small allocation can fail. This
4584  adds checking and error handling to a few cases where the allocation
4585  wasn't checked for success. In the ftp case, the freeing of the path
4586  variable is moved ahead of the allocation since there is little point
4587  in keeping it around across the strdup, and the separation makes for
4588  more readable code. In nwlib, the lock is aslo freed in the error path.
4589
4590  Also bumps the copyright years on affected files.
4591
4592  Closes #3084
4593  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
4594  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4595
4596- comment: Fix multiple typos in function parameters
4597
4598  Ensure that the parameters in the comment match the actual names in the
4599  prototype.
4600
4601  Closes #3079
4602  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4603
4604- CURLOPT_SSLVERSION.3: fix typos and consistent spelling
4605
4606  Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
4607  already done in all but a few cases. Also fix a few typos.
4608
4609  Closes #3076
4610  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
4611  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4612
4613- SECURITY-PROCESS: make links into hyperlinks
4614
4615  Use proper Markdown hyperlink format for the Bountygraph links in order
4616  for the generated website page to be more user friendly. Also link to
4617  the sponsors to give them a little extra credit.
4618
4619  Closes #3082
4620  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4621
4622Jay Satiro (3 Oct 2018)
4623- CURLOPT_HEADER.3: fix typo
4624
4625- nss: fix nssckbi module loading on Windows
4626
4627  - Use .DLL extension instead of .so to load modules on Windows.
4628
4629  Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
4630  Reported-by: Maxime Legros
4631
4632  Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
4633
4634  Closes https://github.com/curl/curl/pull/3086
4635
4636- data-binary.d: clarify default content-type is x-www-form-urlencoded
4637
4638  - Advise user that --data-binary sends a default content type of
4639    x-www-form-urlencoded, and to have the data treated as arbitrary
4640    binary data by the server set the content-type header to octet-stream.
4641
4642  Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
4643
4644  Closes https://github.com/curl/curl/pull/3085
4645
4646Marcel Raad (2 Oct 2018)
4647- test1299: use single quotes around asterisk
4648
4649  Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
4650
4651Daniel Stenberg (2 Oct 2018)
4652- docs/CIPHERS: mention the colon separation for OpenSSL
4653
4654  Bug: #3077
4655
4656- runtests: ignore disabled even when ranges are given
4657
4658  runtests.pl support running a range of tests, like "44 to 127". Starting
4659  now, the code makes sure that even such given ranges will ignore tests
4660  that are marked as disabled.
4661
4662  Disabled tests can still be run by explictly specifying that test
4663  number.
4664
4665  Closes #3075
4666
4667- urlapi: starting with a drive letter on win32 is not an abs url
4668
4669  ... and libcurl doesn't support any single-letter URL schemes (if there
4670  even exist any) so it should be fairly risk-free.
4671
4672  Reported-by: Marcel Raad
4673
4674  Fixes #3070
4675  Closes #3071
4676
4677Marcel Raad (2 Oct 2018)
4678- doh: fix curl_easy_setopt argument type
4679
4680  CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
4681  MinGW.
4682
4683Daniel Stenberg (2 Oct 2018)
4684- RELEASE-NOTES: synced
4685
4686Jay Satiro (1 Oct 2018)
4687- [Ruslan Baratov brought this change]
4688
4689  CMake: Improve config installation
4690
4691  Use 'GNUInstallDirs' standard module to set destinations of installed
4692  files.
4693
4694  Use uppercase "CURL" names instead of lowercase "curl" to match standard
4695  'FindCURL.cmake' CMake module:
4696  * https://cmake.org/cmake/help/latest/module/FindCURL.html
4697
4698  Meaning:
4699  * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
4700  * User should call 'find_package(CURL)' instead of 'find_package(curl)'
4701
4702  Use 'configure_package_config_file' function to generate
4703  'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
4704  file smaller and handle components better.  E.g.  current configuration
4705  report no error if user specified unknown components (note: new
4706  configuration expects no components, report error if user will try to
4707  specify any).
4708
4709  Closes https://github.com/curl/curl/pull/2849
4710
4711Daniel Stenberg (1 Oct 2018)
4712- test1650: make it depend on http/2
4713
4714  Follow-up to 570008c99da0ccbb as it gets link errors.
4715
4716  Reported-by: Michael Kaufmann
4717  Closes #3068
4718
4719- [Nate Prewitt brought this change]
4720
4721  MANUAL: minor grammar fix
4722
4723  Noticed a typo reading through the docs.
4724
4725  Closes #3069
4726
4727- doh: only build if h2 enabled
4728
4729  The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
4730  of HTTP for use with DoH".
4731
4732  Reported-by: Marcel Raad
4733  Closes #3066
4734
4735- test2100: require http2 to run
4736
4737  Reported-by: Marcel Raad
4738  Fixes #3064
4739  Closes #3065
4740
4741- multi: fix memory leak in content encoding related error path
4742
4743  ... a missing multi_done() call.
4744
4745  Credit to OSS-Fuzz
4746  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
4747  Closes #3063
4748
4749- travis: bump the Secure Transport build to use xcode 10
4750
4751  Due to an issue with travis
4752  (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
4753  Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
4754  an alternative and as it builds curl+darwinssl fine that seems like a
4755  better choice.
4756
4757  Closes #3062
4758
4759- [Rich Turner brought this change]
4760
4761  curl: enabled Windows VT Support and UTF-8 output
4762
4763  Enabled Console VT support (if running OS supports VT) in tool_main.c.
4764
4765  Fixes #3008
4766  Closes #3011
4767
4768- multi: fix location URL memleak in error path
4769
4770  Follow-up to #3044 - fix a leak OSS-Fuzz detected
4771  Closes #3057
4772
4773Sergei Nikulov (28 Sep 2018)
4774- cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)
4775
4776- [Brad King brought this change]
4777
4778  cmake: Backport to work with CMake 3.0 again
4779
4780  Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
4781  instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
4782  bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
4783  issue #2746.  This broke support for users on older versions of CMake
4784  even if they just want to build curl and do not care whether transitive
4785  dependencies work.
4786
4787  Backport the logic to work with CMake 3.0 again by implementing the
4788  fix only when the version of CMake is at least 3.4.
4789
4790Marcel Raad (27 Sep 2018)
4791- curl_threads: fix classic MinGW compile break
4792
4793  Classic MinGW still has _beginthreadex's return type as unsigned long
4794  instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
4795
4796  [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
4797  [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
4798
4799  Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
4800  Closes https://github.com/curl/curl/pull/3051
4801
4802Daniel Stenberg (26 Sep 2018)
4803- configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
4804
4805  fix a few leftovers
4806
4807  Fixes #3006
4808  Closes #3049
4809
4810- [Doron Behar brought this change]
4811
4812  example/htmltidy: fix include paths of tidy libraries
4813
4814  Closes #3050
4815
4816- RELEASE-NOTES: synced
4817
4818- Curl_http2_done: fix memleak in error path
4819
4820  Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
4821  early failures.
4822
4823  Detected by OSS-Fuzz
4824
4825  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
4826  Closes #3046
4827
4828- http: fix memleak in rewind error path
4829
4830  If the rewind would fail, a strdup() would not get freed.
4831
4832  Detected by OSS-Fuzz
4833
4834  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
4835  Closes #3044
4836
4837Viktor Szakats (24 Sep 2018)
4838- test320: fix regression in [ci skip]
4839
4840  The value in question is coming directly from `gnutls-serv`, so it cannot
4841  be modified freely.
4842
4843  Reported-by: Marcel Raad
4844  Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004
4845
4846Daniel Stenberg (24 Sep 2018)
4847- Curl_retry_request: fix memory leak
4848
4849  Detected by OSS-Fuzz
4850
4851  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
4852  Closes #3042
4853
4854- openssl: load built-in engines too
4855
4856  Regression since 38203f1
4857
4858  Reported-by: Jean Fabrice
4859  Fixes #3023
4860  Closes #3040
4861
4862- [Christian Heimes brought this change]
4863
4864  OpenSSL: enable TLS 1.3 post-handshake auth
4865
4866  OpenSSL 1.1.1 requires clients to opt-in for post-handshake
4867  authentication.
4868
4869  Fixes: https://github.com/curl/curl/issues/3026
4870  Signed-off-by: Christian Heimes <christian@python.org>
4871
4872  Closes https://github.com/curl/curl/pull/3027
4873
4874- [Even Rouault brought this change]
4875
4876  Curl_dedotdotify(): always nul terminate returned string.
4877
4878  This fixes potential out-of-buffer access on "file:./" URL
4879
4880  $ valgrind curl "file:./"
4881  ==24516== Memcheck, a memory error detector
4882  ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
4883  ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
4884  ==24516== Command: /home/even/install-curl-git/bin/curl file:./
4885  ==24516==
4886  ==24516== Conditional jump or move depends on uninitialised value(s)
4887  ==24516==    at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
4888  ==24516==    by 0x4EBB315: seturl (urlapi.c:801)
4889  ==24516==    by 0x4EBB568: parseurl (urlapi.c:861)
4890  ==24516==    by 0x4EBC509: curl_url_set (urlapi.c:1199)
4891  ==24516==    by 0x4E644C6: parseurlandfillconn (url.c:2044)
4892  ==24516==    by 0x4E67AEF: create_conn (url.c:3613)
4893  ==24516==    by 0x4E68A4F: Curl_connect (url.c:4119)
4894  ==24516==    by 0x4E7F0A4: multi_runsingle (multi.c:1440)
4895  ==24516==    by 0x4E808E5: curl_multi_perform (multi.c:2173)
4896  ==24516==    by 0x4E7558C: easy_transfer (easy.c:686)
4897  ==24516==    by 0x4E75801: easy_perform (easy.c:779)
4898  ==24516==    by 0x4E75868: curl_easy_perform (easy.c:798)
4899
4900  Was originally spotted by
4901  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
4902  Credit to OSS-Fuzz
4903
4904  Closes #3039
4905
4906Viktor Szakats (23 Sep 2018)
4907- update URLs in tests
4908
4909  - and one in docs/MANUAL as well
4910
4911  Closes https://github.com/curl/curl/pull/3038
4912
4913- whitespace fixes
4914
4915  - replace tabs with spaces where possible
4916  - remove line ending spaces
4917  - remove double/triple newlines at EOF
4918  - fix a non-UTF-8 character
4919  - cleanup a few indentations/line continuations
4920    in manual examples
4921
4922  Closes https://github.com/curl/curl/pull/3037
4923
4924Daniel Stenberg (23 Sep 2018)
4925- http: add missing return code check
4926
4927  Detected by Coverity. CID 1439610.
4928
4929  Follow-up from 46e164069d1a523
4930
4931  Closes #3034
4932
4933- ftp: don't access pointer before NULL check
4934
4935  Detected by Coverity. CID 1439611.
4936
4937  Follow-up from 46e164069d1a523
4938
4939- unit1650: fix out of boundary access
4940
4941  Fixes #2987
4942  Closes #3035
4943
4944Viktor Szakats (23 Sep 2018)
4945- docs/examples: URL updates
4946
4947  - also update two URLs outside of docs/examples
4948  - fix spelling of filename persistant.c
4949  - fix three long lines that started failing checksrc.pl
4950
4951  Closes https://github.com/curl/curl/pull/3036
4952
4953- examples/Makefile.m32: sync with core [ci skip]
4954
4955  also:
4956  - fix two warnings in synctime.c (one of them Windows-specific)
4957  - upgrade URLs in synctime.c and remove a broken one
4958
4959  Closes https://github.com/curl/curl/pull/3033
4960
4961Daniel Stenberg (22 Sep 2018)
4962- examples/parseurl.c: show off the URL API a bit
4963
4964  Closes #3030
4965
4966- SECURITY-PROCESS: mention the bountygraph program [ci skip]
4967
4968  Closes #3032
4969
4970- url: use the URL API internally as well
4971
4972  ... to make it a truly unified URL parser.
4973
4974  Closes #3017
4975
4976Viktor Szakats (22 Sep 2018)
4977- URL and mailmap updates, remove an obsolete directory [ci skip]
4978
4979  Closes https://github.com/curl/curl/pull/3031
4980
4981Daniel Stenberg (22 Sep 2018)
4982- RELEASE-NOTES: synced
4983
4984- configure: force-use -lpthreads on HPUX
4985
4986  When trying to detect pthreads use on HPUX the checks will succeed
4987  without the correct -l option but then end up failing at run-time.
4988
4989  Reported-by: Eason-Yu on github
4990  Fixes #2697
4991  Closes #3025
4992
4993- [Erik Minekus brought this change]
4994
4995  Curl_saferealloc: Fixed typo in docblock
4996
4997  Closes #3029
4998
4999- urlapi: fix support for address scope in IPv6 numerical addresses
5000
5001  Closes #3024
5002
5003- [Loganaden Velvindron brought this change]
5004
5005  GnutTLS: TLS 1.3 support
5006
5007  Closes #2971
5008
5009- TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
5010
5011  Removed DoH.
5012
5013  Closes #2734
5014
5015Jay Satiro (20 Sep 2018)
5016- vtls: fix ssl version "or later" behavior change for many backends
5017
5018  - Treat CURL_SSLVERSION_MAX_NONE the same as
5019    CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
5020    the minimum version also as the maximum.
5021
5022  This is a follow-up to 6015cef which changed the behavior of setting
5023  the SSL version so that the requested version would only be the minimum
5024  and not the maximum. It appears it was (mostly) implemented in OpenSSL
5025  but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
5026  mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
5027
5028  - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
5029
5030  Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
5031  erroneously treated as always TLS 1.3, and would cause an error if
5032  OpenSSL was built without TLS 1.3 support.
5033
5034  Co-authored-by: Daniel Gustafsson
5035
5036  Fixes https://github.com/curl/curl/issues/2969
5037  Closes https://github.com/curl/curl/pull/3012
5038
5039Daniel Stenberg (20 Sep 2018)
5040- certs: generate tests certs with sha256 digest algorithm
5041
5042  As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
5043
5044  "SSL certificate problem: CA signature digest algorithm too weak"
5045
5046  Closes #3014
5047
5048- urlapi: document the error codes, remove two unused ones
5049
5050  Assisted-by: Daniel Gustafsson
5051  Closes #3019
5052
5053- urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
5054
5055  In order for this API to fully work for libcurl itself, it now offers a
5056  CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
5057  name prefix just like libcurl always did. If there's no known prefix, it
5058  will guess "http://".
5059
5060  Separately, it relaxes the check of the host name so that IDN host names
5061  can be passed in as well.
5062
5063  Both these changes are necessary for libcurl itself to use this API.
5064
5065  Assisted-by: Daniel Gustafsson
5066  Closes #3018
5067
5068Kamil Dudka (19 Sep 2018)
5069- nss: try to connect even if libnssckbi.so fails to load
5070
5071  One can still use CA certificates stored in NSS database.
5072
5073  Reported-by: Maxime Legros
5074  Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
5075
5076  Closes #3016
5077
5078Daniel Gustafsson (19 Sep 2018)
5079- urlapi: don't set value which is never read
5080
5081  In the CURLUPART_URL case, there is no codepath which invokes url
5082  decoding so remove the assignment of the urldecode variable. This
5083  fixes the deadstore bug-report from clang static analysis.
5084
5085  Closes #3015
5086  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5087
5088- todo: Update reference to already done item
5089
5090  TODO item 1.1 was implemented in commit 946ce5b61f, update reference
5091  to it with instead referencing the implemented option.
5092
5093  Closes #3013
5094  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5095
5096Daniel Stenberg (18 Sep 2018)
5097- RELEASE-NOTES: synced
5098
5099- [slodki brought this change]
5100
5101  cmake: don't require OpenSSL if USE_OPENSSL=OFF
5102
5103  User must have OpenSSL installed even if not used by libcurl at all
5104  since 7.61.1 release.  Broken at
5105  7867aaa9a01decf93711428462335be8cef70212
5106
5107  Reviewed-by: Sergei Nikulov
5108  Closes #3001
5109
5110- curl_multi_wait: call getsock before figuring out timeout
5111
5112  .... since getsock may update the expiry timer.
5113
5114  Fixes #2996
5115  Closes #3000
5116
5117- examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
5118
5119  Closes #3004
5120
5121Daniel Gustafsson (18 Sep 2018)
5122- darwinssl: Fix realloc memleak
5123
5124  The reallocation was using the input pointer for the return value, which
5125  leads to a memory leak on reallication failure. Fix by instead use the
5126  safe internal API call Curl_saferealloc().
5127
5128  Closes #3005
5129  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5130  Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
5131
5132- [Kruzya brought this change]
5133
5134  examples: Fix memory leaks from realloc errors
5135
5136  Make sure to not overwrite the reallocated pointer in realloc() calls
5137  to avoid a memleak on memory errors.
5138
5139- memory: add missing curl_printf header
5140
5141  ftp_send_command() was using vsnprintf() without including the libcurl
5142  *rintf() replacement header. Fix by including curl_printf.h and also
5143  add curl_memory.h while at it since memdebug.h depends on it.
5144
5145  Closes #2999
5146  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5147
5148Daniel Stenberg (16 Sep 2018)
5149- [Si brought this change]
5150
5151  curl: update --tlsv* descriptions in --help output
5152
5153  Closes #2994
5154
5155- http: made Curl_add_buffer functions take a pointer-pointer
5156
5157  ... so that they can clear the original pointer on failure, which makes
5158  the error-paths and their cleanups easier.
5159
5160  Closes #2992
5161
5162- http2: fix memory leaks on error-path
5163
5164- [Rikard Falkeborn brought this change]
5165
5166  libtest: Add chkdecimalpoint to .gitignore
5167
5168  Closes #2998
5169
5170Viktor Szakats (14 Sep 2018)
5171- secure Openwall URLs
5172
5173Daniel Stenberg (14 Sep 2018)
5174- openssl: show "proper" version number for libressl builds
5175
5176  Closes #2989
5177
5178- [Rainer Jung brought this change]
5179
5180  openssl: assume engine support in 0.9.8 or later
5181
5182  Fixes #2983
5183  Closes #2988
5184
5185Daniel Gustafsson (13 Sep 2018)
5186- sendf: use failf() rather than Curl_failf()
5187
5188  The failf() macro is the name used for invoking Curl_failf(). While
5189  there isn't a way to turn off failf like there is for infof, but it's
5190  still a good idea to use the macro.
5191
5192  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5193
5194- sendf: Fix whitespace in infof/failf concatenation
5195
5196  Strings broken on multiple rows in the .c file need to have appropriate
5197  whitespace padding on either side of the concatenation point to render
5198  a correct amalgamated string. Fix by adding a space at the occurrences
5199  found.
5200
5201  Closes #2986
5202  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5203
5204- krb5: fix memory leak in krb_auth
5205
5206  The FTP command allocated by aprintf() must be freed after usage.
5207
5208  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5209
5210- ftp: include command in Curl_ftpsend sendbuffer
5211
5212  Commit 8238ba9c5f10414a88f502bf3f5d5a42d632984c inadvertently removed
5213  the actual command to be sent from the send buffer in a refactoring.
5214  Add back copying the command into the buffer. Also add more guards
5215  against malformed input while at it.
5216
5217  Closes #2985
5218  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5219
5220- ntlm_wb: Fix memory leaks in ntlm_wb_response
5221
5222  When erroring out on a request being too large, the existing buffer was
5223  leaked. Fix by explicitly freeing on the way out.
5224
5225  Closes #2966
5226  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5227
5228Daniel Stenberg (13 Sep 2018)
5229- [Yiming Jing brought this change]
5230
5231  travis: build the MesaLink vtls backend with MesaLink 0.7.1
5232
5233- [Yiming Jing brought this change]
5234
5235  runtests.pl: run tests against the MesaLink vtls backend
5236
5237- [Yiming Jing brought this change]
5238
5239  vtls: add a MesaLink vtls backend
5240
5241  Closes #2984
5242
5243- [Yiming Jing brought this change]
5244
5245  configure.ac: add a MesaLink vtls backend
5246
5247- [Dave Reisner brought this change]
5248
5249  curl_url_set.3: properly escape \n in example code
5250
5251  This yields
5252
5253    "the scheme is %s\n"
5254
5255  instead of
5256
5257    "the scheme is %s0
5258
5259  Closes #2970
5260
5261- [Dave Reisner brought this change]
5262
5263  curl_url_set.3: fix typo in reference to CURLU_APPENDQUERY
5264
5265- urlglob: improve error message
5266
5267  to help user understand what the problem is
5268
5269  Reported-by: Daniel Shahaf
5270
5271  Fixes #2763
5272  Closes #2977
5273
5274- [Yiming Jing brought this change]
5275
5276  tests/certs: rebuild certs with 2048-bit RSA keys
5277
5278  The previous test certificates contained RSA keys of only 1024 bits.
5279  However, RSA claims that 1024-bit RSA keys are likely to become
5280  crackable some time before 2010. The NIST recommends at least 2048-bit
5281  keys for RSA for now.
5282
5283  Better use full 2048 also for testing.
5284
5285  Closes #2973
5286
5287Daniel Gustafsson (12 Sep 2018)
5288- TODO: fix typo in item
5289
5290  Closes #2968
5291  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5292
5293Marcel Raad (12 Sep 2018)
5294- anyauthput: fix compiler warning on 64-bit Windows
5295
5296  On Windows, the read function from <io.h> is used, which has its byte
5297  count parameter as unsigned int instead of size_t.
5298
5299  Closes https://github.com/curl/curl/pull/2972
5300
5301Viktor Szakats (12 Sep 2018)
5302- lib: fix gcc8 warning on Windows
5303
5304  Closes https://github.com/curl/curl/pull/2979
5305
5306Jay Satiro (12 Sep 2018)
5307- openssl: fix gcc8 warning
5308
5309  - Use memcpy instead of strncpy to copy a string without termination,
5310    since gcc8 warns about using strncpy to copy as many bytes from a
5311    string as its length.
5312
5313  Suggested-by: Viktor Szakats
5314
5315  Closes https://github.com/curl/curl/issues/2980
5316
5317Daniel Stenberg (10 Sep 2018)
5318- libcurl-url.3: overview man page for the URL API
5319
5320  Closes #2967
5321
5322- example/asiohiper: insert warning comment about its status
5323
5324  This example is simply not working correctly but there's nobody around
5325  with the skills and energy to fix it.
5326
5327  Closes #2407
5328
5329Kamil Dudka (10 Sep 2018)
5330- docs/cmdline-opts: update the documentation of --tlsv1.0
5331
5332  ... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
5333
5334  Closes #2955
5335
5336- docs/examples: do not wait when no transfers are running
5337
5338  Closes #2948
5339
5340Daniel Stenberg (10 Sep 2018)
5341- [Daniel Gustafsson brought this change]
5342
5343  cookies: Move failure case label to end of function
5344
5345  Rather than jumping backwards to where failure cleanup happens
5346  to be performed, move the failure case to end of the function
5347  where it is expected per existing coding convention.
5348
5349  Closes #2965
5350
5351- [Daniel Gustafsson brought this change]
5352
5353  misc: fix typos in comments
5354
5355  Closes #2963
5356
5357- [Daniel Gustafsson brought this change]
5358
5359  cookies: fix leak when writing cookies to file
5360
5361  If the formatting fails, we error out on a fatal error and
5362  clean up on the way out. The array was however freed within
5363  the wrong scope and was thus never freed in case the cookies
5364  were written to a file instead of STDOUT.
5365
5366  Closes #2957
5367
5368- [Daniel Gustafsson brought this change]
5369
5370  cookies: Remove redundant expired check
5371
5372  Expired cookies have already been purged at a later expiration time
5373  before this check, so remove the redundant check.
5374
5375  closes #2962
5376
5377- ntlm_wb: bail out if the response gets overly large
5378
5379  Exit the realloc() loop if the response turns out ridiculously large to
5380  avoid worse problems.
5381
5382  Reported-by: Harry Sintonen
5383  Closes #2959
5384
5385- [Daniel Gustafsson brought this change]
5386
5387  url.c: fix comment typo and indentation
5388
5389  Closes #2960
5390
5391- urlapi: avoid derefencing a possible NULL pointer
5392
5393  Coverity CID 1439134
5394
5395- RELEASE-NOTES: synced
5396
5397Marcel Raad (8 Sep 2018)
5398- test324: fix after 3f3b26d6feb0667714902e836af608094235fca2
5399
5400  The expected error code is now 60. 51 is dead.
5401
5402Daniel Stenberg (8 Sep 2018)
5403- curl_url_set.3: correct description
5404
5405- curl_url-docs: fix AVAILABILITY as Added in curl 7.62.0
5406
5407- URL-API
5408
5409  See header file and man pages for API. All documented API details work
5410  and are tested in the 1560 test case.
5411
5412  Closes #2842
5413
5414- curl_easy_upkeep: removed 'conn' from the name
5415
5416  ... including the associated option.
5417
5418  Fixes #2951
5419  Closes #2952
5420
5421- [Max Dymond brought this change]
5422
5423  upkeep: add a connection upkeep API: curl_easy_conn_upkeep()
5424
5425  Add functionality so that protocols can do custom keepalive on their
5426  connections, when an external API function is called.
5427
5428  Add docs for the new options in 7.62.0
5429
5430  Closes #1641
5431
5432- [Philipp Waehnert brought this change]
5433
5434  configure: add option to disable automatic OpenSSL config loading
5435
5436  Sometimes it may be considered a security risk to load an external
5437  OpenSSL configuration automatically inside curl_global_init(). The
5438  configuration option --disable-ssl-auto-load-config disables this
5439  automatism. The Windows build scripts winbuild/Makefile.vs provide a
5440  corresponding option ENABLE_SSL_AUTO_LOAD_CONFIG accepting a boolean
5441  value.
5442
5443  Setting neither of these options corresponds to the previous behavior
5444  loading the external OpenSSL configuration automatically.
5445
5446  Fixes #2724
5447  Closes #2791
5448
5449- doh: minor edits to please Coverity
5450
5451  The gcc typecheck macros and coverity combined made it warn on the 2nd
5452  argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
5453
5454  Coverity CID 1439115 and CID 1439114.
5455
5456- schannel: avoid switch-cases that go to default anyway
5457
5458  SEC_E_APPLICATION_PROTOCOL_MISMATCH isn't defined in some versions of
5459  mingw and would require an ifdef otherwise.
5460
5461  Reported-by: Thomas Glanzmann
5462  Approved-by: Marc Hörsken
5463  Bug: https://curl.haxx.se/mail/lib-2018-09/0020.html
5464  Closes #2950
5465
5466- [Nicklas Avén brought this change]
5467
5468  imap: change from "FETCH" to "UID FETCH"
5469
5470  ... and add "MAILINDEX".
5471
5472  As described in #2789, this is a suggested solution.  Changing UID=xx to
5473  actually get mail with UID xx and add "MAILINDEX" to get a mail with a
5474  special index in the mail box (old behavior).  So MAILINDEX=1 gives the
5475  first non deleted mail in the mail box.
5476
5477  Fixes #2789
5478  Closes #2815
5479
5480- CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size
5481
5482  This is step 3 of #2888.
5483
5484  Fixes #2888
5485  Closes #2896
5486
5487- travis: add the DOH tests to the torture testing
5488
5489- DOH: add test case 1650 and 2100
5490
5491- curl: --doh-url added
5492
5493- setopt: add CURLOPT_DOH_URL
5494
5495  Closes #2668
5496
5497- [Han Han brought this change]
5498
5499  ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
5500
5501  Long live CURLE_PEER_FAILED_VERIFICATION
5502
5503- [Han Han brought this change]
5504
5505  x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert
5506
5507  CURLE_PEER_FAILED_VERIFICATION makes more sense because Curl_parseX509
5508  does not allocate memory internally as its first argument is a pointer
5509  to the certificate structure. The same error code is also returned by
5510  Curl_verifyhost when its call to Curl_parseX509 fails so the change
5511  makes error handling more consistent.
5512
5513- [Han Han brought this change]
5514
5515  openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer
5516
5517  Failure to extract the issuer name from the server certificate should
5518  return a more specific error code like on other TLS backends.
5519
5520- [Han Han brought this change]
5521
5522  schannel: unified error code handling
5523
5524  Closes #2901
5525
5526- [Han Han brought this change]
5527
5528  darwinssl: more specific and unified error codes
5529
5530  Closes #2901
5531
5532- CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
5533
5534  Disable the CURLOPT_DNS_USE_GLOBAL_CACHE option and mark it for
5535  deprecation and complete removal in six months.
5536
5537  Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
5538  Closes #2942
5539
5540- url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled
5541
5542  Closes #2709
5543
5544- multiplex: enable by default
5545
5546  Starting 7.62.0, multiplexing is enabled by default in multi handles.
5547
5548- [Jim Fuller brought this change]
5549
5550  tests: add unit tests for url.c
5551
5552  Approved-by: Daniel Gustafsson
5553  Closes #2937
5554
5555- test1452: mark as flaky
5556
5557  makes it not run in the CI builds
5558
5559  Closes #2941
5560
5561- pipelining: deprecated
5562
5563  Transparently. The related curl_multi_setopt() options all still returns
5564  OK when pipelining is selected.
5565
5566  To re-enable the support, the single line change in lib/multi.c needs to
5567  be reverted.
5568
5569  See docs/DEPRECATE.md
5570
5571  Closes #2705
5572
5573- RELEASE-NOTES: start working on 7.62.0
5574
5575Version 7.61.1 (4 Sep 2018)
5576
5577Daniel Stenberg (4 Sep 2018)
5578- THANKS: 7.61.1 status
5579
5580- RELEASE-NOTES: 7.61.1
5581
5582- Curl_getoff_all_pipelines: ignore unused return values
5583
5584  Since scan-build would warn on the dead "Dead store/Dead increment"
5585
5586Viktor Szakats (4 Sep 2018)
5587- sftp: fix indentation
5588
5589Daniel Stenberg (4 Sep 2018)
5590- [Przemysław Tomaszewski brought this change]
5591
5592  sftp: don't send post-qoute sequence when retrying a connection
5593
5594  Fixes #2939
5595  Closes #2940
5596
5597Kamil Dudka (3 Sep 2018)
5598- url, vtls: make CURLOPT{,_PROXY}_TLS13_CIPHERS work
5599
5600  This is a follow-up to PR #2607 and PR #2926.
5601
5602  Closes #2936
5603
5604Daniel Stenberg (3 Sep 2018)
5605- [Jay Satiro brought this change]
5606
5607  tool_operate: Add http code 408 to transient list for --retry
5608
5609  - Treat 408 request timeout as transient so that curl will retry the
5610    request if --retry was used.
5611
5612  Closes #2925
5613
5614- [Jay Satiro brought this change]
5615
5616  openssl: Fix setting TLS 1.3 cipher suites
5617
5618  The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
5619  missing.
5620
5621  Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
5622  Reported-by: Kamil Dudka
5623
5624  Closes #2926
5625
5626- Curl_ntlm_core_mk_nt_hash: return error on too long password
5627
5628  ... since it would cause an integer overflow if longer than (max size_t
5629  / 2).
5630
5631  This is CVE-2018-14618
5632
5633  Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
5634  Closes #2756
5635  Reported-by: Zhaoyang Wu
5636
5637- [Rikard Falkeborn brought this change]
5638
5639  http2: Use correct format identifier for stream_id
5640
5641  Closes #2928
5642
5643Marcel Raad (2 Sep 2018)
5644- test1148: fix precheck output
5645
5646  "precheck command error" is not very helpful.
5647
5648Daniel Stenberg (1 Sep 2018)
5649- all: s/int/size_t cleanup
5650
5651  Assisted-by: Rikard Falkeborn
5652
5653  Closes #2922
5654
5655- ssh-libssh: use FALLTHROUGH to silence gcc8
5656
5657Jay Satiro (31 Aug 2018)
5658- tool_operate: Fix setting proxy TLS 1.3 ciphers
5659
5660Daniel Stenberg (31 Aug 2018)
5661- [Daniel Gustafsson brought this change]
5662
5663  cookies: support creation-time attribute for cookies
5664
5665  According to RFC6265 section 5.4, cookies with equal path lengths
5666  SHOULD be sorted by creation-time (earlier first). This adds a
5667  creation-time record to the cookie struct in order to make cookie
5668  sorting more deterministic. The creation-time is defined as the
5669  order of the cookies in the jar, the first cookie read fro the
5670  jar being the oldest. The creation-time is thus not serialized
5671  into the jar. Also remove the strcmp() matching in the sorting as
5672  there is no lexicographic ordering in RFC6265. Existing tests are
5673  updated to match.
5674
5675  Closes #2524
5676
5677Marcel Raad (31 Aug 2018)
5678- Don't use Windows path %PWD for SSH tests
5679
5680  All these tests failed on Windows because something like
5681  sftp://%HOSTIP:%SSHPORT%PWD/
5682  expanded to
5683  sftp://127.0.0.1:1234c:/msys64/home/bla/curl
5684  and then curl complained about the port number ending with a letter.
5685
5686  Use the original POSIX path instead of the Windows path created in
5687  checksystem to fix this.
5688
5689  Closes https://github.com/curl/curl/pull/2920
5690
5691Jay Satiro (29 Aug 2018)
5692- CURLOPT_SSL_CTX_FUNCTION.3: clarify connection reuse warning
5693
5694  Reported-by: Daniel Stenberg
5695
5696  Closes https://github.com/curl/curl/issues/2916
5697
5698Daniel Stenberg (28 Aug 2018)
5699- THANKS-filter: dedup Daniel Jeliński
5700
5701- RELEASE-NOTES: synced
5702
5703- CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
5704
5705- CURLOPT_SSL_CTX_FUNCTION.3: might cause unintended connection reuse [ci skip]
5706
5707  Added a warning!
5708
5709  Closes #2915
5710
5711- curl: fix time-of-check, time-of-use race in dir creation
5712
5713  Patch-by: Jay Satiro
5714  Detected by Coverity
5715  Fixes #2739
5716  Closes #2912
5717
5718- cmdline-opts/page-footer: fix edit mistake
5719
5720  There was a missing newline.
5721
5722  follow-up to a7ba60bb7250
5723
5724- docs: clarify NO_PROXY env variable functionality
5725
5726  Reported-by: Kirill Marchuk
5727  Fixes #2773
5728  Closes #2911
5729
5730Marcel Raad (24 Aug 2018)
5731- lib1522: fix curl_easy_setopt argument type
5732
5733  CURLOPT_POSTFIELDSIZE is a long option.
5734
5735- curl_threads: silence bad-function-cast warning
5736
5737  As uintptr_t and HANDLE are always the same size, this warning is
5738  harmless. Just silence it using an intermediate uintptr_t variable.
5739
5740  Closes https://github.com/curl/curl/pull/2908
5741
5742Daniel Stenberg (24 Aug 2018)
5743- README: add appveyor build badge [ci skip]
5744
5745  Closes #2913
5746
5747- [Ihor Karpenko brought this change]
5748
5749  schannel: client certificate store opening fix
5750
5751  1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG )
5752  while opening certificate store would be sufficient in this scenario and
5753  less-demanding in sense of required user credentials ( for example,
5754  IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore
5755  call without any of flags mentioned above ),
5756
5757  2) as 'cert_store_name' is a DWORD, attempt to format its value like a
5758  string ( in "Failed to open cert store" error message ) will throw null
5759  pointer exception
5760
5761  3) adding GetLastError(), in my opinion, will make error message more
5762  useful.
5763
5764  Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
5765
5766  Closes #2909
5767
5768- [Leonardo Taccari brought this change]
5769
5770  gopher: Do not translate `?' to `%09'
5771
5772  Since GOPHER support was added in curl `?' character was automatically
5773  translated to `%09' (`\t').
5774
5775  However, this behaviour does not seems documented in RFC 4266 and for
5776  search selectors it is documented to directly use `%09' in the URL.
5777  Apart that several gopher servers in the current gopherspace have CGI
5778  support where `?' is used as part of the selector and translating it to
5779  `%09' often leads to surprising results.
5780
5781  Closes #2910
5782
5783Marcel Raad (23 Aug 2018)
5784- cookie tests: treat files as text
5785
5786  Fixes test failures because of wrong line endings on Windows.
5787
5788Daniel Stenberg (23 Aug 2018)
5789- libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation
5790
5791  Multi-threaded applictions basically MUST set CURLOPT_NO_SIGNAL to 1L to
5792  avoid the risk of getting a SIGPIPE.
5793
5794  Either way, a multi-threaded application that uses libcurl/openssl needs
5795  to have a signhandler for or ignore SIGPIPE on its own.
5796
5797  Based on discussions in #2800
5798  Closes #2904
5799
5800- RELEASE-NOTES: synced
5801
5802Marcel Raad (22 Aug 2018)
5803- Tests: fixes for Windows
5804
5805  - test 1268 requires unix sockets
5806  - test 2072 must be disabled also for MSYS/MinGW
5807
5808Daniel Stenberg (22 Aug 2018)
5809- http2: abort the send_callback if not setup yet
5810
5811  When Curl_http2_done() gets called before the http2 data is setup all
5812  the way, we cannot send anything and this should just return an error.
5813
5814  Detected by OSS-Fuzz
5815  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
5816
5817- http2: remove four unused nghttp2 callbacks
5818
5819  Closes #2903
5820
5821- x509asn1: use FALLTHROUGH
5822
5823  ... as no other comments are accepted since 014ed7c22f51463
5824
5825Marcel Raad (21 Aug 2018)
5826- test1148: disable if decimal separator is not point
5827
5828  Modifying the locale with environment variables doesn't work for native
5829  Windows applications. Just disable the test in this case if the decimal
5830  separator is something different than a point. Use a precheck with a
5831  small C program to achieve that.
5832
5833  Closes https://github.com/curl/curl/pull/2786
5834
5835- Enable more GCC warnings
5836
5837  This enables the following additional warnings:
5838  -Wold-style-definition
5839  -Warray-bounds=2 instead of the default 1
5840  -Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
5841   respected for older versions
5842  -Wunused-const-variable, which enables level 2 instead of the default 1
5843  -Warray-bounds also in debug mode through -ftree-vrp
5844  -Wnull-dereference also in debug mode through
5845   -fdelete-null-pointer-checks
5846
5847  Closes https://github.com/curl/curl/pull/2747
5848
5849- curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
5850
5851  This enables level 4 instead of the default level 3, which of the
5852  currently used comments only allows /* FALLTHROUGH */ to silence the
5853  warning.
5854
5855  Closes https://github.com/curl/curl/pull/2747
5856
5857- curl-compilers: enable -Wbad-function-cast on GCC
5858
5859  This warning used to be enabled only for clang as it's a bit stricter
5860  on GCC. Silence the remaining occurrences and enable it on GCC too.
5861
5862  Closes https://github.com/curl/curl/pull/2747
5863
5864- configure: conditionally enable pedantic-errors
5865
5866  Enable pedantic-errors for GCC >= 5 with --enable-werror. Before GCC 5,
5867  pedantic-errors was synonymous to -Werror=pedantic [0], which is still
5868  the case for clang [1]. With GCC 5, it became complementary [2].
5869
5870  Also fix a resulting error in acinclude.m4 as main's return type was
5871  missing, which is illegal in C99.
5872
5873  [0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
5874  [1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages
5875  [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
5876
5877  Closes https://github.com/curl/curl/pull/2747
5878
5879- Remove unused definitions
5880
5881  Closes https://github.com/curl/curl/pull/2747
5882
5883Daniel Stenberg (21 Aug 2018)
5884- x509asn1: make several functions static
5885
5886  and remove the private SIZE_T_MAX define and use the generic one.
5887
5888  Closes #2902
5889
5890- INTERNALS: require GnuTLS >= 2.11.3
5891
5892  Since the public pinning support was brought in e644866caf4. GnuTLS
5893  2.11.3 was released in October 2010.
5894
5895  Figured out in #2890
5896
5897- http2: avoid set_stream_user_data() before stream is assigned
5898
5899  ... before the stream is started, we have it set to -1.
5900
5901  Fixes #2894
5902  Closes #2898
5903
5904- SSLCERTS: improve the openssl command line
5905
5906  ... for extracting certs from a live HTTPS server to make a cacerts.pem
5907  from them.
5908
5909- docs/SECURITY-PROCESS: now we name the files after the CVE id
5910
5911- RELEASE-NOTES: synced
5912
5913- upload: change default UPLOAD_BUFSIZE to 64KB
5914
5915  To make uploads significantly faster in some circumstances.
5916
5917  Part 2 of #2888
5918  Closes #2892
5919
5920- upload: allocate upload buffer on-demand
5921
5922  Saves 16KB on the easy handle for operations that don't need that
5923  buffer.
5924
5925  Part 1 of #2888
5926
5927- [Laurent Bonnans brought this change]
5928
5929  vtls: reinstantiate engine on duplicated handles
5930
5931  Handles created with curl_easy_duphandle do not use the SSL engine set
5932  up in the original handle. This fixes the issue by storing the engine
5933  name in the internal url state and setting the engine from its name
5934  inside curl_easy_duphandle.
5935
5936  Reported-by: Anton Gerasimov
5937  Signed-of-by: Laurent Bonnans
5938  Fixes #2829
5939  Closes #2833
5940
5941- http2: make sure to send after RST_STREAM
5942
5943  If this is the last stream on this connection, the RST_STREAM might not
5944  get pushed to the wire otherwise.
5945
5946  Fixes #2882
5947  Closes #2887
5948  Researched-by: Michael Kaufmann
5949
5950- test1268: check the stderr output as "text"
5951
5952  Follow-up to 099f37e9c57
5953
5954  Pointed-out-by: Marcel Raad
5955
5956- urldata: remove unused pipe_broke struct field
5957
5958  This struct field is never set TRUE in any existing code path. This
5959  change removes the field completely.
5960
5961  Closes #2871
5962
5963- curl: warn the user if a given file name looks like an option
5964
5965  ... simply because this is usually a sign of the user having omitted the
5966  file name and the next option is instead "eaten" by the parser as a file
5967  name.
5968
5969  Add test1268 to verify
5970
5971  Closes #2885
5972
5973- http2: check nghttp2_session_set_stream_user_data return code
5974
5975  Might help bug #2688 debugging
5976
5977  Closes #2880
5978
5979- travis: revert back to gcc-7 for coverage builds
5980
5981  ... since the gcc-8 ones seem to fail frequently.
5982
5983  Follow-up from b85207199544ca
5984
5985  Closes #2886
5986
5987- RELEASE-NOTES: synced
5988
5989  ... and now listed in alphabetical order!
5990
5991- [Adrien brought this change]
5992
5993  CMake: CMake config files are defining CURL_STATICLIB for static builds
5994
5995  This change allows to use the CMake config files generated by Curl's
5996  CMake scripts for static builds of the library.
5997  The symbol CURL_STATIC lib must be defined to compile downstream,
5998  thus the config package is the perfect place to do so.
5999
6000  Fixes #2817
6001  Closes #2823
6002  Reported-by: adnn on github
6003  Reviewed-by: Sergei Nikulov
6004
6005- TODO: host name sections in config files
6006
6007Kamil Dudka (14 Aug 2018)
6008- ssh-libssh: fix infinite connect loop on invalid private key
6009
6010  Added test 656 (based on test 604) to verify the fix.
6011
6012  Bug: https://bugzilla.redhat.com/1595135
6013
6014  Closes #2879
6015
6016- ssh-libssh: reduce excessive verbose output about pubkey auth
6017
6018  The verbose message "Authentication using SSH public key file" was
6019  printed each time the ssh_userauth_publickey_auto() was called, which
6020  meant each time a packet was transferred over network because the API
6021  operates in non-blocking mode.
6022
6023  This patch makes sure that the verbose message is printed just once
6024  (when the authentication state is entered by the SSH state machine).
6025
6026Daniel Stenberg (14 Aug 2018)
6027- travis: disable h2 torture tests for "coverage"
6028
6029  Since they started to fail almost 100% since a few days.
6030
6031  Closes #2876
6032
6033Marcel Raad (14 Aug 2018)
6034- travis: update to GCC 8
6035
6036  Closes https://github.com/curl/curl/pull/2869
6037
6038Daniel Stenberg (13 Aug 2018)
6039- http: fix for tiny "HTTP/0.9" response
6040
6041  Deal with tiny "HTTP/0.9" (header-less) responses by checking the
6042  status-line early, even before a full "HTTP/" is received to allow
6043  detecting 0.9 properly.
6044
6045  Test 1266 and 1267 added to verify.
6046
6047  Fixes #2420
6048  Closes #2872
6049
6050Kamil Dudka (13 Aug 2018)
6051- docs: add disallow-username-in-url.d and haproxy-protocol.d on the list
6052
6053  ... to make make the files appear in distribution tarballs
6054
6055  Closes #2856
6056
6057- .travis.yml: verify that man pages can be regenerated
6058
6059  ... when curl is built from distribution tarball
6060
6061  Closes #2856
6062
6063Marcel Raad (11 Aug 2018)
6064- Split non-portable part off test 1133
6065
6066  Split off testing file names with double quotes into new test 1158.
6067  Disable it for MSYS using a precheck as it doesn't support file names
6068  with double quotes (but Cygwin does, for example).
6069
6070  Fixes https://github.com/curl/curl/issues/2796
6071  Closes https://github.com/curl/curl/pull/2854
6072
6073Jay Satiro (11 Aug 2018)
6074- projects: Improve Windows perl detection in batch scripts
6075
6076  - Determine if perl is in the user's PATH by running perl.exe.
6077
6078  Prior to this change detection was done by checking the PATH for perl/
6079  but that did not work in all cases (eg git install includes perl but
6080  not in perl/ path).
6081
6082  Bug: https://github.com/curl/curl/pull/2865
6083  Reported-by: Daniel Jeliński
6084
6085- [Michael Kaufmann brought this change]
6086
6087  docs: Improve the manual pages of some callbacks
6088
6089  - CURLOPT_HEADERFUNCTION: add newlines
6090  - CURLOPT_INTERLEAVEFUNCTION: fix the description of 'userdata'
6091  - CURLOPT_READDATA: mention crashes, same as in CURLOPT_WRITEDATA
6092  - CURLOPT_READFUNCTION: rename 'instream' to 'userdata' and explain
6093    how to set it
6094
6095  Closes https://github.com/curl/curl/pull/2868
6096
6097Marcel Raad (11 Aug 2018)
6098- GCC: silence -Wcast-function-type uniformly
6099
6100  Pointed-out-by: Rikard Falkeborn
6101  Closes https://github.com/curl/curl/pull/2860
6102
6103- Silence GCC 8 cast-function-type warnings
6104
6105  On Windows, casting between unrelated function types is fine and
6106  sometimes even necessary, so just use an intermediate cast to
6107  (void (*) (void)) to silence the warning as described in [0].
6108
6109  [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
6110
6111  Closes https://github.com/curl/curl/pull/2860
6112
6113Daniel Stenberg (11 Aug 2018)
6114- CURLINFO_SIZE_UPLOAD: fix missing counter update
6115
6116  Adds test 1522 for verification.
6117
6118  Reported-by: cjmsoregan
6119  Fixes #2847
6120  Closes #2864
6121
6122- [Daniel Jelinski brought this change]
6123
6124  Documentation: fix CURLOPT_SSH_COMPRESSION copy/paste bug
6125
6126  Closes #2867
6127
6128- RELEASE-NOTES: synced
6129
6130- openssl: fix potential NULL pointer deref in is_pkcs11_uri
6131
6132  Follow-up to 298d2565e
6133  Coverity CID 1438387
6134
6135Marcel Raad (10 Aug 2018)
6136- travis: execute "set -eo pipefail" for coverage build
6137
6138  Follow-up to 2de63ab179eb78630ee039ad94fb2a5423df522d and
6139  0b87c963252d3504552ee0c8cf4402bd65a80af5.
6140
6141  Closes https://github.com/curl/curl/pull/2862
6142
6143Daniel Stenberg (10 Aug 2018)
6144- lib1502: fix memory leak in torture test
6145
6146  Reported-by: Marcel Raad
6147  Fixes #2861
6148  Closes #2863
6149
6150- docs: mention NULL is fine input to several functions
6151
6152  Fixes #2837
6153  Closes #2858
6154  Reported-by: Markus Elfring
6155
6156- [Bas van Schaik brought this change]
6157
6158  README.md: add LGTM.com code quality grade for C/C++
6159
6160  Closes #2857
6161
6162- [Rikard Falkeborn brought this change]
6163
6164  test1531: Add timeout
6165
6166  Previously, the macro TEST_HANG_TIMEOUT was unused, but since there is
6167  looping going on, we might as well add timing instead of removing it.
6168
6169  Closes #2853
6170
6171- [Rikard Falkeborn brought this change]
6172
6173  test1540: Remove unused macro TEST_HANG_TIMEOUT
6174
6175  The macro has never been used, and it there is not really any place
6176  where it would make sense to add timing checks.
6177
6178  Closes #2852
6179
6180- [Rikard Falkeborn brought this change]
6181
6182  asyn-thread: Remove unused macro
6183
6184  The macro seems to never have been used.
6185
6186  Closes #2852
6187
6188- [Rikard Falkeborn brought this change]
6189
6190  http_proxy: Remove unused macro SELECT_TIMEOUT
6191
6192  Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22.
6193
6194  Closes #2852
6195
6196- [Rikard Falkeborn brought this change]
6197
6198  formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT
6199
6200  Its usage was removed in
6201  84ad1fd3047815f9c6e78728bb351b828eac10b1.
6202
6203  Closes #2852
6204
6205- [Rikard Falkeborn brought this change]
6206
6207  telnet: Remove unused macros TELOPTS and TELCMDS
6208
6209  Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51.
6210
6211  Closes #2852
6212
6213- [Daniel Jelinski brought this change]
6214
6215  openssl: fix debug messages
6216
6217  Fixes #2806
6218  Closes #2843
6219
6220- configure: fix for -lpthread detection with OpenSSL and pkg-config
6221
6222  ... by making sure it uses the -I provided by pkg-config!
6223
6224  Reported-by: pszemus on github
6225  Fixes #2848
6226  Closes #2850
6227
6228- RELEASE-NOTES: synced
6229
6230- windows: follow up to the buffer-tuning 1ba1dba7
6231
6232  Somehow I didn't include the amended version of the previous fix. This
6233  is the missing piece.
6234
6235  Pointed-out-by: Viktor Szakats
6236
6237- [Daniel Jelinski brought this change]
6238
6239  windows: implement send buffer tuning
6240
6241  Significantly enhances upload performance on modern Windows versions.
6242
6243  Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
6244  Closes #2762
6245  Fixes #2224
6246
6247- [Anderson Toshiyuki Sasaki brought this change]
6248
6249  ssl: set engine implicitly when a PKCS#11 URI is provided
6250
6251  This allows the use of PKCS#11 URI for certificates and keys without
6252  setting the corresponding type as "ENG" and the engine as "pkcs11"
6253  explicitly. If a PKCS#11 URI is provided for certificate, key,
6254  proxy_certificate or proxy_key, the corresponding type is set as "ENG"
6255  if not provided and the engine is set to "pkcs11" if not provided.
6256
6257  Acked-by: Nikos Mavrogiannopoulos
6258  Closes #2333
6259
6260- [Ruslan Baratov brought this change]
6261
6262  CMake: Respect BUILD_SHARED_LIBS
6263
6264  Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
6265  custom option CURL_STATICLIB.
6266
6267  Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
6268
6269  Reviewed-by: Sergei Nikulov
6270  Closes #2755
6271
6272- [John Butterfield brought this change]
6273
6274  cmake: bumped minimum version to 3.4
6275
6276  Closes #2753
6277
6278- [John Butterfield brought this change]
6279
6280  cmake: link curl to the OpenSSL targets instead of lib absolute paths
6281
6282  Reviewed-by: Jakub Zakrzewski
6283  Reviewed-by: Sergei Nikulov
6284  Closes #2753
6285
6286- travis: build darwinssl on macos 10.12
6287
6288  ... as building on 10.13.x before 10.13.4 leads to link errors.
6289
6290  Assisted-by: Nick Zitzmann
6291  Fixes #2835
6292  Closes #2845
6293
6294- DEPRECATE: remove release date from 7.62.0
6295
6296  Since it will slip and the version is the important part there, not the
6297  date.
6298
6299- lib/Makefile: only do symbol hiding if told to
6300
6301  This restores the ability to build a static lib with
6302  --disable-symbol-hiding to keep non-curl_ symbols.
6303
6304  Researched-by: Dan Fandrich
6305  Reported-by: Ran Mozes
6306  Fixes #2830
6307  Closes #2831
6308
6309Marcel Raad (2 Aug 2018)
6310- hostip: fix unused variable warning
6311
6312  addresses is only used in an infof call, which is a macro expanding to
6313  nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
6314
6315Daniel Stenberg (2 Aug 2018)
6316- test1307: disabled
6317
6318  Turns out that since we're using the native fnmatch function now when
6319  available, and they simply disagree on a huge number of test patterns
6320  that make it hard to test this function like this...
6321
6322  Fixes #2825
6323
6324- smb: don't mark it done in smb_do
6325
6326  Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its
6327  doing function too, which requires smb_do() to not mark itself as
6328  done...
6329
6330  Closes #2822
6331
6332- [Rikard Falkeborn brought this change]
6333
6334  general: fix printf specifiers
6335
6336  Closes #2818
6337
6338- RELEASE-NOTES: synced
6339
6340- mailmap: Daniel Jelinski
6341
6342- [Harry Sintonen brought this change]
6343
6344  HTTP: Don't attempt to needlessly decompress redirect body
6345
6346  This change fixes a regression where redirect body would needlessly be
6347  decompressed even though it was to be ignored anyway. As it happens this
6348  causes secondary issues since there appears to be a bug in apache2 that
6349  it in certain conditions generates a corrupt zlib response. The
6350  regression was created by commit:
6351  dbcced8e32b50c068ac297106f0502ee200a1ebd
6352
6353  Discovered-by: Harry Sintonen
6354  Closes #2798
6355
6356- curl: use Content-Disposition before the "URL end" for -OJ
6357
6358  Regression introduced in 7.61.0
6359
6360  Reported-by: Thomas Klausner
6361  Fixes #2783
6362  Closes #2813
6363
6364- [Daniel Jelinski brought this change]
6365
6366  retry: return error if rewind was necessary but didn't happen
6367
6368  Fixes #2801
6369  Closes #2812
6370
6371- http2: clear the drain counter in Curl_http2_done
6372
6373  Reported-by: Andrei Virtosu
6374  Fixes #2800
6375  Closes #2809
6376
6377- smb: fix memory leak on early failure
6378
6379  ... by making sure connection related data (->share) is stored in the
6380  connection and not in the easy handle.
6381
6382  Detected by OSS-fuzz
6383  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
6384  Fixes #2769
6385  Closes #2810
6386
6387- travis: run a 'make checksrc' too
6388
6389  ... to make sure the examples are all checked.
6390
6391  Closes #2811
6392
6393Jay Satiro (29 Jul 2018)
6394- examples/ephiperfifo: checksrc compliance
6395
6396- [Michael Kaufmann brought this change]
6397
6398  sws: handle EINTR when calling select()
6399
6400  Closes https://github.com/curl/curl/pull/2808
6401
6402Daniel Stenberg (29 Jul 2018)
6403- test1157: follow-up to 35ecffb9
6404
6405  Ignore the user-agent line.
6406  Pointed-out-by: Marcel Raad
6407
6408Michael Kaufmann (29 Jul 2018)
6409- tests/http_pipe.py: Use /usr/bin/env to find python
6410
6411Daniel Stenberg (28 Jul 2018)
6412- TODO: Support Authority Information Access certificate extension (AIA)
6413
6414  Closes #2793
6415
6416- conn_free: updated comment to clarify
6417
6418  Let's call it disassociate instead of disconnect since the latter term
6419  is used so much for (TCP) connections already.
6420
6421- test1157: test -H from empty file
6422
6423  Verifies bugfix #2797
6424
6425- [Tobias Blomberg brought this change]
6426
6427  curl: Fix segfault when -H @headerfile is empty
6428
6429  The curl binary would crash if the -H command line option was given a
6430  filename to read using the @filename syntax but that file was empty.
6431
6432  Closes #2797
6433
6434- mime: check Curl_rand_hex's return code
6435
6436  Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
6437  Reported-by: Jeffrey Walton
6438  Closes #2795
6439
6440- [Josh Bialkowski brought this change]
6441
6442  docs/examples: add hiperfifo example using linux epoll/timerfd
6443
6444  Closes #2804
6445
6446- [Darío Hereñú brought this change]
6447
6448  docs/INSTALL.md: minor formatting fixes
6449
6450  Closes #2794
6451
6452- [Christopher Head brought this change]
6453
6454  docs/CURLOPT_URL: fix indentation
6455
6456  The statement, “The application does not have to keep the string around
6457  after setting this option,” appears to be indented under the RTMP
6458  paragraph. It actually applies to all protocols, not just RTMP.
6459  Eliminate the extra indentation.
6460
6461  Closes #2788
6462
6463- [Christopher Head brought this change]
6464
6465  docs/CURLOPT_WRITEFUNCTION: size is always 1
6466
6467  For compatibility with `fwrite`, the `CURLOPT_WRITEFUNCTION` callback is
6468  passed two `size_t` parameters which, when multiplied, designate the
6469  number of bytes of data passed in. In practice, CURL always sets the
6470  first parameter (`size`) to 1.
6471
6472  This practice is also enshrined in documentation and cannot be changed
6473  in future. The documentation states that the default callback is
6474  `fwrite`, which means `fwrite` must be a suitable function for this
6475  purpose. However, the documentation also states that the callback must
6476  return the number of *bytes* it successfully handled, whereas ISO C
6477  `fwrite` returns the number of items (each of size `size`) which it
6478  wrote. The only way these numbers can be equal is if `size` is 1.
6479
6480  Since `size` is 1 and can never be changed in future anyway, document
6481  that fact explicitly and let users rely on it.
6482
6483  Closes #2787
6484
6485- [Carie Pointer brought this change]
6486
6487  wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random
6488
6489  RNG structure must be freed by call to FreeRng after its use in
6490  Curl_cyassl_random. This call fixes Valgrind failures when running the
6491  test suite with wolfSSL.
6492
6493  Closes #2784
6494
6495- [Even Rouault brought this change]
6496
6497  reuse_conn(): free old_conn->options
6498
6499  This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with
6500  connection reuse.
6501
6502  I found this with oss-fuzz on GDAL and curl master:
6503  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582
6504  I couldn't reproduce with the oss-fuzz original test case, but looking
6505  at curl source code pointed to this well reproducable leak.
6506
6507  Closes #2790
6508
6509Marcel Raad (25 Jul 2018)
6510- [Daniel Jelinski brought this change]
6511
6512  system_win32: fix version checking
6513
6514  In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false
6515  when run on windows 10.0. This patch addresses that error.
6516
6517  Closes https://github.com/curl/curl/pull/2792
6518
6519Daniel Stenberg (24 Jul 2018)
6520- [Johannes Schindelin brought this change]
6521
6522  auth: pick Bearer authentication whenever a token is available
6523
6524  So far, the code tries to pick an authentication method only if
6525  user/password credentials are available, which is not the case for
6526  Bearer authentictation...
6527
6528  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6529  Closes #2754
6530
6531- [Johannes Schindelin brought this change]
6532
6533  auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer token
6534
6535  The Bearer authentication was added to cURL 7.61.0, but there is a
6536  problem: if CURLAUTH_ANY is selected, and the server supports multiple
6537  authentication methods including the Bearer method, we strongly prefer
6538  that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer
6539  authentication fails, we will never even try to attempt any other
6540  method.
6541
6542  This is particularly unfortunate when we already know that we do not
6543  have any Bearer token to work with.
6544
6545  Such a scenario happens e.g. when using Git to push to Visual Studio
6546  Team Services (which supports Basic and Bearer authentication among
6547  other methods) and specifying the Personal Access Token directly in the
6548  URL (this aproach is frequently taken by automated builds).
6549
6550  Let's make sure that we have a Bearer token to work with before we
6551  select the Bearer authentication among the available authentication
6552  methods.
6553
6554  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6555  Closes #2754
6556
6557Marcel Raad (22 Jul 2018)
6558- test320: treat curl320.out file as binary
6559
6560  Otherwise, LF line endings are converted to CRLF on Windows,
6561  but no conversion is done for the reply, so the test case fails.
6562
6563  Closes https://github.com/curl/curl/pull/2776
6564
6565Daniel Stenberg (22 Jul 2018)
6566- vtls: set conn->data when closing TLS
6567
6568  Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
6569  layer for a connection still needs a Curl_easy handle for the session_id
6570  cache etc.
6571
6572  Fixes #2764
6573  Closes #2771
6574
6575Marcel Raad (21 Jul 2018)
6576- tests: fixes for Windows line endlings
6577
6578  Set mode="text" when line endings depend on the system representation.
6579
6580  Closes https://github.com/curl/curl/pull/2772
6581
6582- test214: disable MSYS2's POSIX path conversion for URL
6583
6584  By default, the MSYS2 bash converts all backslashes to forward slashes
6585  in URLs. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
6586
6587  Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
6588
6589Daniel Stenberg (20 Jul 2018)
6590- http2: several cleanups
6591
6592  - separate easy handle from connections better
6593  - added asserts on a number of places
6594  - added sanity check of pipelines for debug builds
6595
6596  Closes #2751
6597
6598- smb_getsock: always wait for write socket too
6599
6600  ... the protocol is doing read/write a lot, so it needs to write often
6601  even when downloading. A more proper fix could check for eactly when it
6602  wants to write and only ask for it then.
6603
6604  Without this fix, an SMB download could easily get stuck when the event-driven
6605  API was used.
6606
6607  Closes #2768
6608
6609Marcel Raad (20 Jul 2018)
6610- test1143: disable MSYS2's POSIX path conversion
6611
6612  By default, the MSYS2 bash interprets http:/%HOSTIP:%HTTPPORT/want/1143
6613  as a POSIX file list and converts it to a Windows file list.
6614  Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
6615
6616  Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
6617  Closes https://github.com/curl/curl/pull/2765
6618
6619Daniel Stenberg (18 Jul 2018)
6620- RELEASE-NOTES: sync
6621
6622  ... and work toward 7.61.1
6623
6624- [Ruslan Baratov brought this change]
6625
6626  CMake: Update scripts to use consistent style
6627
6628  Closes #2727
6629  Reviewed-by: Sergei Nikulov
6630
6631- header output: switch off all styles, not just unbold
6632
6633  ... the "unbold" sequence doesn't work on the mac Terminal.
6634
6635  Reported-by: Zero King
6636  Fixes #2736
6637  Closes #2738
6638
6639Nick Zitzmann (14 Jul 2018)
6640- [Rodger Combs brought this change]
6641
6642  darwinssl: add support for ALPN negotiation
6643
6644Marcel Raad (14 Jul 2018)
6645- test1422: add required file feature
6646
6647  curl configured with --enable-debug --disable-file currently complains
6648  on test1422:
6649  Info: Protocol "file" not supported or disabled in libcurl
6650
6651  Make test1422 dependend on enabled FILE protocol to fix this.
6652
6653  Fixes https://github.com/curl/curl/issues/2741
6654  Closes https://github.com/curl/curl/pull/2742
6655
6656Patrick Monnerat (12 Jul 2018)
6657- content_encoding: accept up to 4 unknown trailer bytes after raw deflate data
6658
6659  Some servers issue raw deflate data that may be followed by an undocumented
6660  trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
6661  before considering the data is in error.
6662
6663  Reported-by: clbr on github
6664  Fixes #2719
6665
6666Daniel Stenberg (12 Jul 2018)
6667- smb: fix memory-leak in URL parse error path
6668
6669  Detected by OSS-Fuzz
6670  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
6671  Closes #2740
6672
6673Marcel Raad (12 Jul 2018)
6674- schannel: enable CALG_TLS1PRF for w32api >= 5.1
6675
6676  The definition of CALG_TLS1PRF has been fixed in the 5.1 branch:
6677  https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/commits/73aedcc0f2e6ba370de0d86ab878ad76a0dda7b5
6678
6679Daniel Stenberg (12 Jul 2018)
6680- docs/SECURITY-PROCESS: mention bounty, drop pre-notify
6681
6682  + The hackerone bounty and its process
6683
6684  - We don't and can't handle pre-notification
6685
6686- multi: always do the COMPLETED procedure/state
6687
6688  It was previously erroneously skipped in some situations.
6689
6690  libtest/libntlmconnect.c wrongly depended on wrong behavior (that it
6691  would get a zero timeout) when no handles are "running" in a multi
6692  handle. That behavior is no longer present with this fix. Now libcurl
6693  will always return a -1 timeout when all handles are completed.
6694
6695  Closes #2733
6696
6697- Curl_getoff_all_pipelines: improved for multiplexed
6698
6699  On multiplexed connections, transfers can be removed from anywhere not
6700  just at the head as for pipelines.
6701
6702- ares: check for NULL in completed-callback
6703
6704- conn: remove the boolean 'inuse' field
6705
6706  ... as the usage needs to be counted.
6707
6708- [Paul Howarth brought this change]
6709
6710  openssl: assume engine support in 1.0.0 or later
6711
6712  Commit 38203f1585da changed engine detection to be version-based,
6713  with a baseline of openssl 1.0.1. This does in fact break builds
6714  with openssl 1.0.0, which has engine support - the configure script
6715  detects that ENGINE_cleanup() is available - but <openssl/engine.h>
6716  doesn't get included to declare it.
6717
6718  According to upstream documentation, engine support was added to
6719  mainstream openssl builds as of version 0.9.7:
6720  https://github.com/openssl/openssl/blob/master/README.ENGINE
6721
6722  This commit drops the version test down to 1.0.0 as version 1.0.0d
6723  is the oldest version I have to test with.
6724
6725  Closes #2732
6726
6727Marcel Raad (11 Jul 2018)
6728- schannel: fix MinGW compile break
6729
6730  Original MinGW's w32api has a sytax error in its definition of
6731  CALG_TLS1PRF [0]. Don't use original MinGW w32api's CALG_TLS1PRF
6732  until this bug [1] is fixed.
6733
6734  [0] https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
6735  [1] https://osdn.net/projects/mingw/ticket/38391
6736
6737  Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
6738  Closes https://github.com/curl/curl/pull/2728
6739
6740Daniel Stenberg (11 Jul 2018)
6741- examples/crawler.c: move #ifdef to column 0
6742
6743  Apparently the C => HTML converter on the web site doesn't quite like it
6744  otherwise.
6745
6746  Reported-by: Jeroen Ooms
6747
6748Version 7.61.0 (11 Jul 2018)
6749
6750Daniel Stenberg (11 Jul 2018)
6751- release: 7.61.0
6752
6753- TODO: Configurable loading of OpenSSL configuration file
6754
6755  Closes #2724
6756
6757- post303.d: clarify that this is an RFC violation
6758
6759  ... and not the other way around, which this previously said.
6760
6761  Reported-by: Vasiliy Faronov
6762  Fixes #2723
6763  Closes #2726
6764
6765- [Ruslan Baratov brought this change]
6766
6767  CMake: remove redundant and old end-of-block syntax
6768
6769  Reviewed-by: Jakub Zakrzewski
6770  Closes #2715
6771
6772Jay Satiro (9 Jul 2018)
6773- lib/curl_setup.h: remove unicode character
6774
6775  Follow-up to 82ce416.
6776
6777  Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
6778
6779Daniel Stenberg (9 Jul 2018)
6780- lib/curl_setup.h: remove unicode bom from 8272ec50f02
6781
6782Marcel Raad (9 Jul 2018)
6783- schannel: fix -Wsign-compare warning
6784
6785  MinGW warns:
6786  /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
6787  conditional expression [-Wsign-compare]
6788
6789  Fix this by casting the ptrdiff_t to size_t as we know it's positive.
6790
6791  Closes https://github.com/curl/curl/pull/2721
6792
6793- schannel: workaround for wrong function signature in w32api
6794
6795  Original MinGW's w32api has CryptHashData's second parameter as BYTE *
6796  instead of const BYTE *.
6797
6798  Closes https://github.com/curl/curl/pull/2721
6799
6800- schannel: make more cipher options conditional
6801
6802  They are not defined in the original MinGW's <wincrypt.h>.
6803
6804  Closes https://github.com/curl/curl/pull/2721
6805
6806- curl_setup: include <winerror.h> before <windows.h>
6807
6808  Otherwise, only part of it gets pulled in through <windows.h> on
6809  original MinGW.
6810
6811  Fixes https://github.com/curl/curl/issues/2361
6812  Closes https://github.com/curl/curl/pull/2721
6813
6814- examples: fix -Wformat warnings
6815
6816  When size_t is not a typedef for unsigned long (as usually the case on
6817  Windows), GCC emits -Wformat warnings when using lu and lx format
6818  specifiers with size_t. Silence them with explicit casts to
6819  unsigned long.
6820
6821  Closes https://github.com/curl/curl/pull/2721
6822
6823Daniel Stenberg (9 Jul 2018)
6824- smtp: use the upload buffer size for scratch buffer malloc
6825
6826  ... not the read buffer size, as that can be set smaller and thus cause
6827  a buffer overflow! CVE-2018-0500
6828
6829  Reported-by: Peter Wu
6830  Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
6831
6832- [Dave Reisner brought this change]
6833
6834  scripts: include _curl as part of CLEANFILES
6835
6836  Closes #2718
6837
6838- [Nick Zitzmann brought this change]
6839
6840  darwinssl: allow High Sierra users to build the code using GCC
6841
6842  ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
6843  enumeration constants.
6844
6845  Fixes #2656
6846  Closes #2703
6847
6848- [Ruslan Baratov brought this change]
6849
6850  CMake: Remove unused 'output_var' from 'collect_true'
6851
6852  Variable 'output_var' is not used and can be removed.
6853  Function 'collect_true' renamed to 'count_true'.
6854
6855- [Ruslan Baratov brought this change]
6856
6857  CMake: Remove unused functions
6858
6859  Closes #2711
6860
6861- KNOWN_BUGS: Stick to same family over SOCKS proxy
6862
6863- libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
6864
6865  ... because otherwise not everything get closed down correctly.
6866
6867  Fixes #2708
6868  Closes #2712
6869
6870- libssh: include line number in state change debug messages
6871
6872  Closes #2713
6873
6874- KNOWN_BUGS: Borland support is dropped, AIX problem is too old
6875
6876- [Jeroen Ooms brought this change]
6877
6878  example/crawler.c: simple crawler based on libxml2
6879
6880  Closes #2706
6881
6882- RELEASE-NOTES: synced
6883
6884- DEPRECATE: include year when specifying date
6885
6886- DEPRECATE: linkified
6887
6888- DEPRECATE: mention the PR that disabled axTLS
6889
6890- docs/DEPRECATE.md: spelling and minor formatting
6891
6892- DEPRECATE: new doc describing planned item removals
6893
6894  Closes #2704
6895
6896- [Gisle Vanem brought this change]
6897
6898  telnet: fix clang warnings
6899
6900  telnet.c(1401,28): warning: cast from function call of type 'int' to
6901  non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
6902
6903  Fixes #2696
6904  Closes #2700
6905
6906- docs: fix missed option name markups
6907
6908- [Gaurav Malhotra brought this change]
6909
6910  openssl: Remove some dead code
6911
6912  Closes #2698
6913
6914- openssl: make the requested TLS version the *minimum* wanted
6915
6916  The code treated the set version as the *exact* version to require in
6917  the TLS handshake, which is not what other TLS backends do and probably
6918  not what most people expect either.
6919
6920  Reported-by: Andreas Olsson
6921  Assisted-by: Gaurav Malhotra
6922  Fixes #2691
6923  Closes #2694
6924
6925- RELEASE-NOTES: synced
6926
6927- openssl: allow TLS 1.3 by default
6928
6929  Reported-by: Andreas Olsson
6930  Fixes #2692
6931  Closes #2693
6932
6933- [Adrian Peniak brought this change]
6934
6935  CURLINFO_TLS_SSL_PTR.3: improve the example
6936
6937  The previous example was a little bit confusing, because SSL* structure
6938  (or other "in use" SSL connection pointer) is not accessible after the
6939  transfer is completed, therefore working with the raw TLS library
6940  specific pointer needs to be done during transfer.
6941
6942  Closes #2690
6943
6944- travis: add a build using the synchronous name resolver
6945
6946  ... since default uses the threaded one and we test the c-ares build
6947  already.
6948
6949  Closes #2689
6950
6951- configure: remove CURL_CHECK_NI_WITHSCOPEID too
6952
6953  Since it isn't used either and requires the getnameinfo check
6954
6955  Follow-up to 0aeca41702d2
6956
6957- getnameinfo: not used
6958
6959  Closes #2687
6960
6961- easy_perform: use *multi_timeout() to get wait times
6962
6963  ... and trim the threaded Curl_resolver_getsock() to return zero
6964  millisecond wait times during the first three milliseconds so that
6965  localhost or names in the OS resolver cache gets detected and used
6966  faster.
6967
6968  Closes #2685
6969
6970Max Dymond (27 Jun 2018)
6971- configure: Add dependent libraries after crypto
6972
6973  The linker is pretty dumb and processes things left to right, keeping a
6974  tally of symbols it hasn't resolved yet. So, we need -ldl to appear
6975  after -lcrypto otherwise the linker won't find the dl functions.
6976
6977  Closes #2684
6978
6979Daniel Stenberg (27 Jun 2018)
6980- GOVERNANCE: linkify, changed some titles
6981
6982- GOVERNANCE: add maintainer details/duties
6983
6984- url: check Curl_conncache_add_conn return code
6985
6986  ... it was previously unchecked in two places and thus errors could
6987  remain undetected and cause trouble.
6988
6989  Closes #2681
6990
6991- include/README: remove "hacking" advice, not the right place
6992
6993- RELEASE-NOTES: synced
6994
6995- CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
6996
6997  Follow-up to b6a16afa0aa5
6998
6999- netrc: use a larger buffer
7000
7001  ... to work with longer passwords etc. Grow it from a 256 to a 4096
7002  bytes buffer.
7003
7004  Reported-by: Dario Nieuwenhuis
7005  Fixes #2676
7006  Closes #2680
7007
7008- [Patrick Schlangen brought this change]
7009
7010  CURLOPT_SSL_VERIFYPEER.3: Add performance note
7011
7012  Closes #2673
7013
7014- [Javier Blazquez brought this change]
7015
7016  multi: fix crash due to dangling entry in connect-pending list
7017
7018  Fixes #2677
7019  Closes #2679
7020
7021- ConnectionExists: make sure conn->data is set when "taking" a connection
7022
7023  Follow-up to 2c15693.
7024
7025  Bug #2674
7026  Closes #2675
7027
7028- [Kevin R. Bulgrien brought this change]
7029
7030  system.h: fix for gcc on 32 bit OpenServer
7031
7032  Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
7033
7034- [Raphael Gozzo brought this change]
7035
7036  cmake: allow multiple SSL backends
7037
7038  This will make possible to select the SSL backend (using
7039  curl_global_sslset()) even when the libcurl is built using CMake
7040
7041  Closes #2665
7042
7043- url: fix dangling conn->data pointer
7044
7045  By masking sure to use the *current* easy handle with extracted
7046  connections from the cache, and make sure to NULLify the ->data pointer
7047  when the connection is put into the cache to make this mistake easier to
7048  detect in the future.
7049
7050  Reported-by: Will Dietz
7051  Fixes #2669
7052  Closes #2672
7053
7054- CURLOPT_INTERFACE.3: interface names not supported on Windows
7055
7056- travis: run more tests for coverage check
7057
7058  ... run a few more tortured based and run all tests event-based.
7059
7060  Closes #2664
7061
7062- multi: fix memory leak when stopped during name resolve
7063
7064  When the application just started the transfer and then stops it while
7065  the name resolve in the background thread hasn't completed, we need to
7066  wait for the resolve to complete and then cleanup data accordingly.
7067
7068  Enabled test 1553 again and added test 1590 to also check when the host
7069  name resolves successfully.
7070
7071  Detected by OSS-fuzz.
7072  Closes #1968
7073
7074Viktor Szakats (15 Jun 2018)
7075- maketgz: delete .bak files, fix indentation
7076
7077  Ref: https://github.com/curl/curl/pull/2660
7078
7079  Closes https://github.com/curl/curl/pull/2662
7080
7081Daniel Stenberg (15 Jun 2018)
7082- runtests.pl: remove debug leftover from bb9a340c73f3
7083
7084- curl-confopts.m4: fix typo from ed224f23d5beb
7085
7086  Fixes my local configure to detect a custom installed c-ares without
7087  pkgconfig.
7088
7089- docs/RELEASE-PROCEDURE.md: renamed to use .md extension
7090
7091  Closes #2663
7092
7093- RELEASE-PROCEDURE: gpg sign the tags
7094
7095- RELEASE-NOTES: synced
7096
7097- CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
7098
7099- [Mamta Upadhyay brought this change]
7100
7101  maketgz: fix sed issues on OSX
7102
7103  maketgz creates release tarballs and removes the -DEV string in curl
7104  version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
7105  is run. maketgz works fine on linux but fails on OSX. Problem is with
7106  the sed commands that use option -i without an extension. Maketgz
7107  expects GNU sed instead of BSD and this simply won't work on OSX. Adding
7108  a backup extension .bak after -i fixes this issue
7109
7110  Running the script as if on OSX gives this error:
7111
7112  sed: -e: No such file or directory
7113
7114  Adding a .bak extension resolves it
7115
7116  Closes #2660
7117
7118- configure: enhance ability to detect/build with static openssl
7119
7120  Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
7121  building with static libs without pkg-config.
7122
7123  Reported-by: Marcel Raad
7124  Fixes #2199
7125  Closes #2659
7126
7127- configure: use pkg-config for c-ares detection
7128
7129  First check if there's c-ares information given as pkg-config info and use
7130  that as first preference.
7131
7132  Reported-by: pszemus on github
7133  Fixes #2203
7134  Closes #2658
7135
7136- GOVERNANCE.md: explains how this project is run
7137
7138  Closes #2657
7139
7140- KNOWN_BUGS: NTLM doen't support password with § character
7141
7142  Closes #2120
7143
7144- KNOWN_BUGS: slow connect to localhost on Windows
7145
7146  Closes #2281
7147
7148- [Matteo Bignotti brought this change]
7149
7150  mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
7151
7152  certdata.txt should be deleted also when the process is interrupted by
7153  "same certificate downloaded, exiting"
7154
7155  The certdata.txt is currently kept on disk even if you give the -u
7156  option
7157
7158  Closes #2655
7159
7160- progress: remove a set of unused defines
7161
7162  Reported-by: Peter Wu
7163  Closes #2654
7164
7165- TODO: "Option to refuse usernames in URLs" done
7166
7167  Implemented by Björn in 946ce5b61f
7168
7169- [Lyman Epp brought this change]
7170
7171  Curl_init_do: handle NULL connection pointer passed in
7172
7173  Closes #2653
7174
7175- runtests: support variables in <strippart>
7176
7177  ... and make use of that to make 1455 work better without using a fixed
7178  local port number.
7179
7180  Fixes #2649
7181  Closes #2650
7182
7183- Curl_debug: remove dead printhost code
7184
7185  The struct field is never set (since 5e0d9aea3) so remove the use of it
7186  and remove the connectdata pointer from the prototype.
7187
7188  Reported-by: Tejas
7189  Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
7190  Closes #2647
7191
7192Viktor Szakats (12 Jun 2018)
7193- schannel: avoid incompatible pointer warning
7194
7195  with clang-6.0:
7196  ```
7197  vtls/schannel_verify.c: In function 'add_certs_to_store':
7198  vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
7199                                &cert_context)) {
7200                                ^
7201  In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
7202                   from /usr/share/mingw-w64/include/schnlsp.h:9,
7203                   from vtls/schannel.h:29,
7204                   from vtls/schannel_verify.c:40:
7205  /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
7206     WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
7207                            ^~~~~~~~~~~~~~~~
7208  ```
7209  Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
7210
7211  Closes https://github.com/curl/curl/pull/2648
7212
7213Daniel Stenberg (12 Jun 2018)
7214- [Robert Prag brought this change]
7215
7216  schannel: support selecting ciphers
7217
7218  Given the contstraints of SChannel, I'm exposing these as the algorithms
7219  themselves instead; while replicating the ciphersuite as specified by
7220  OpenSSL would have been preferable, I found no way in the SChannel API
7221  to do so.
7222
7223  To use this from the commandline, you need to pass the names of contants
7224  defining the desired algorithms. For example, curl --ciphers
7225  "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
7226  https://github.com The specific names come from wincrypt.h
7227
7228  Closes #2630
7229
7230- [Bernhard M. Wiedemann brought this change]
7231
7232  test 46: make test pass after 2025
7233
7234  shifting the expiry date to 2037 for now
7235  to be before the possibly problematic year 2038
7236
7237  similar in spirit to commit e6293cf8764e9eecb
7238
7239  Closes #2646
7240
7241- [Marian Klymov brought this change]
7242
7243  cppcheck: fix warnings
7244
7245  - Get rid of variable that was generating false positive warning
7246  (unitialized)
7247
7248  - Fix issues in tests
7249
7250  - Reduce scope of several variables all over
7251
7252  etc
7253
7254  Closes #2631
7255
7256- openssl: assume engine support in 1.0.1 or later
7257
7258  Previously it was checked for in configure/cmake, but that would then
7259  leave other build systems built without engine support.
7260
7261  While engine support probably existed prior to 1.0.1, I decided to play
7262  safe. If someone experience a problem with this, we can widen the
7263  version check.
7264
7265  Fixes #2641
7266  Closes #2644
7267
7268- RELEASE-NOTES: synced
7269
7270- RELEASE-PROCEDURE: update the release calendar for 2019
7271
7272- [Gisle Vanem brought this change]
7273
7274  boringssl + schannel: undef X509_NAME in lib/schannel.h
7275
7276  Fixes the build problem when both boringssl and schannel are enabled.
7277
7278  Fixes #2634
7279  Closes #2643
7280
7281- [Vladimir Kotal brought this change]
7282
7283  mk-ca-bundle.pl: leave certificate name untouched in decode()
7284
7285  Closes #2640
7286
7287- [Rikard Falkeborn brought this change]
7288
7289  tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
7290
7291  This removes the generated lib1521.c when running make clean.
7292
7293  Closes #2633
7294
7295- [Rikard Falkeborn brought this change]
7296
7297  tests/libtest: Add lib1521 to nodist_SOURCES
7298
7299  Since 467da3af0, lib1521.c is generated instead of checked in. According
7300  to the commit message, the intention was to remove it from the tarball
7301  as well. However, it is still present when running make dist. To remove
7302  it, add it to nodist_lib1521_SOURCES. This also means there is no need
7303  for the manually added dist-rule in the Makefile.
7304
7305  Also update CMakelists.txt to handle the fact that we now may have
7306  nodist_SOURCES.
7307
7308- [Stephan Mühlstrasser brought this change]
7309
7310  system.h: add support for IBM xlc C compiler
7311
7312  Added a section to system.h guarded with __xlc__ for the IBM xml C
7313  compiler. Before this change the section titled 'generic "safe guess" on
7314  old 32 bit style' was used, which resulted in a wrong definition of
7315  CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
7316  was wrong.
7317
7318  Compilation warnings fixed with this change:
7319
7320    CC       libcurl_la-ftp.lo
7321  "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7322  "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7323  "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7324  "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7325  "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7326    CC       libcurl_la-connect.lo
7327  "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7328  "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7329  "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7330  "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7331    CC       libcurl_la-tftp.lo
7332  "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
7333
7334  Closes #2637
7335
7336- cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
7337
7338Viktor Szakats (3 Jun 2018)
7339- spelling fixes
7340
7341  Detected using the `codespell` tool (version 1.13.0).
7342
7343  Also secure and fix an URL.
7344
7345Daniel Stenberg (2 Jun 2018)
7346- axtls: follow-up spell fix of comment
7347
7348- axTLS: not considered fit for use
7349
7350  URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
7351
7352  This is step one. It adds #error statements that require source edits to
7353  make curl build again if asked to use axTLS. At a later stage we might
7354  remove the axTLS specific code completely.
7355
7356  Closes #2628
7357
7358- build: remove the Borland specific makefiles
7359
7360  According to the user survey 2018, not even one out of 670 users use
7361  them. Nobody on the mailing list spoke up for them either.
7362
7363  Closes #2629
7364
7365- curl_addrinfo: use same #ifdef conditions in source as header
7366
7367  ... for curl_dofreeaddrinfo
7368
7369- multi: remove a DEBUGF()
7370
7371  ... it might call infof() with a NULL first argument that isn't harmful
7372  but makes it not do anything. The infof() line is not very useful
7373  anymore, it has served it purpose. Good riddance!
7374
7375  Fixes #2627
7376
7377- [Alibek.Jorajev brought this change]
7378
7379  CURLOPT_RESOLVE: always purge old entry first
7380
7381  If there's an existing entry using the selected name.
7382
7383  Closes #2622
7384
7385- fnmatch: use the system one if available
7386
7387  If configure detects fnmatch to be available, use that instead of our
7388  custom one for FTP wildcard pattern matching. For standard compliance,
7389  to reduce our footprint and to use already well tested and well
7390  exercised code.
7391
7392  A POSIX fnmatch behaves slightly different than the internal function
7393  for a few test patterns currently and the macOS one yet slightly
7394  different. Test case 1307 is adjusted for these differences.
7395
7396  Closes #2626
7397
7398Patrick Monnerat (31 May 2018)
7399- os400: add new option in ILE/RPG binding
7400
7401  Follow-up to commit 946ce5b
7402
7403Daniel Stenberg (31 May 2018)
7404- tests/libtest/.gitignore: follow-up fix to ignore lib5* too
7405
7406- KNOWN_BUGS: CURL_GLOBAL_SSL
7407
7408  Closes #2276
7409
7410- [Bernhard Walle brought this change]
7411
7412  configure: check for declaration of getpwuid_r
7413
7414  On our x86 Android toolchain, getpwuid_r is implemented but the header
7415  is missing:
7416
7417   netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
7418
7419  Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
7420  the prototype to curl_setup.h.
7421
7422  Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
7423  Closes #2609
7424
7425- [Rikard Falkeborn brought this change]
7426
7427  tests: update .gitignore for libtests
7428
7429  Closes #2624
7430
7431- [Rikard Falkeborn brought this change]
7432
7433  strictness: correct {infof, failf} format specifiers
7434
7435  Closes #2623
7436
7437- [Björn Stenberg brought this change]
7438
7439  option: disallow username in URL
7440
7441  Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
7442  libcurl reject URLs with a username in them.
7443
7444  Closes #2340
7445
7446- libcurl-security.3: improved layout for two rememdy lists
7447
7448- libcurl-security.3: refer to URL instead of in-source markdown file
7449
7450Viktor Szakats (30 May 2018)
7451- curl.rc: embed manifest for correct Windows version detection
7452
7453  * enable it in `src/Makefile.m32`
7454  * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
7455    _not_ enabled via the existing `EMBED_MANIFEST` option
7456  * enable it for all Windows CMake builds (also disable the built-in
7457    minimal manifest, added by CMake by default.)
7458
7459  For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
7460  the list of RC (Resource Compiler) flags to enable the manifest
7461  included in `src/curl.rc`. This may require to disable whatever
7462  automatic or other means in which way another manifest is added to
7463  `curl.exe`.
7464
7465  Notice that Borland C doesn't support this method due to a
7466  long-pending resource compiler bug. Watcom C may also not handle
7467  it correctly when the `-zm` `wrc` option is used (this option may
7468  be unnecessary though) and regardless of options in certain earlier
7469  revisions of the 2.0 beta version.
7470
7471  Closes https://github.com/curl/curl/pull/1221
7472  Fixes https://github.com/curl/curl/issues/2591
7473
7474Patrick Monnerat (30 May 2018)
7475- os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
7476
7477- os400: implement mime api EBCDIC wrappers
7478
7479  Also sync ILE/RPG binding to define the new functions.
7480
7481Daniel Stenberg (29 May 2018)
7482- setopt: add TLS 1.3 ciphersuites
7483
7484  Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
7485
7486  curl: added --tls13-ciphers and --proxy-tls13-ciphers
7487
7488  Fixes #2435
7489  Reported-by: zzq1015 on github
7490  Closes #2607
7491
7492- configure: override AR_FLAGS to silence warning
7493
7494  The automake default ar flags are 'cru', but the 'u' flag in there
7495  causes warnings on many modern Linux distros. Removing 'u' may have a
7496  minor performance impact on older distros but should not cause harm.
7497
7498  Explained on the automake mailing list already back in April 2015:
7499
7500  https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
7501
7502  Reported-by: elephoenix on github
7503  Fixes #2617
7504  Closes #2619
7505
7506Sergei Nikulov (29 May 2018)
7507- cmake: fixed comments in compile checks code
7508
7509Daniel Stenberg (29 May 2018)
7510- INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
7511
7512  ... the older description doesn't work
7513
7514  Reported-by: Peter Varga
7515  Fixes #2615
7516  Closes #2616
7517
7518- [Will Dietz brought this change]
7519
7520  KNOWN_BUGS: restore text regarding #2101.
7521
7522  This was added earlier but appears to have been removed accidentally.
7523
7524  AFAICT this is very much still an issue.
7525
7526  -----
7527
7528  I say "accidentally" because the text seems to have harmlessly snuck
7529  into [1] (which makes no mention of it).  [1] was later reverted for
7530  unspecified reasons in [2], presumably because the mentioned issue was
7531  fixed or invalid.
7532
7533  [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
7534  [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
7535
7536  Closes #2618
7537
7538- fnmatch: insist on escaped bracket to match
7539
7540  A non-escaped bracket ([) is for a character group - as documented. It
7541  will *not* match an individual bracket anymore. Test case 1307 updated
7542  accordingly to match.
7543
7544  Problem detected by OSS-Fuzz, although this fix is probably not a final
7545  fix for the notorious timeout issues.
7546
7547  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
7548  Closes #2614
7549
7550Patrick Monnerat (28 May 2018)
7551- psl: use latest psl and refresh it periodically
7552
7553  The latest psl is cached in the multi or share handle. It is refreshed
7554  before use after 72 hours.
7555  New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
7556  If the latest psl is not available, the builtin psl is used.
7557
7558  Reported-by: Yaakov Selkowitz
7559  Fixes #2553
7560  Closes #2601
7561
7562Daniel Stenberg (28 May 2018)
7563- [Fabrice Fontaine brought this change]
7564
7565  configure: fix ssh2 linking when built with a static mbedtls
7566
7567  The ssh2 pkg-config file could contain the following lines when build
7568  with a static version of mbedtls:
7569     Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
7570     Libs.private: /xxx/libmbedcrypto.a
7571
7572  This static mbedtls library must be used to correctly detect ssh2
7573  support and this library must be copied in libcurl.pc otherwise
7574  compilation of any application (such as upmpdcli) with libcurl will fail
7575  when trying to found mbedtls functions included in libssh2.  So, replace
7576  pkg-config --libs-only-l by pkg-config --libs.
7577
7578  Fixes:
7579   - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
7580
7581  Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
7582  Closes #2613
7583
7584- RELEASE-NOTES: synced
7585
7586- [Bernhard Walle brought this change]
7587
7588  cmake: check for getpwuid_r
7589
7590  The autotools-based build system does it, so we do it also in CMake.
7591
7592  Bug: #2609
7593  Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
7594
7595- cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
7596
7597- [Frank Gevaerts brought this change]
7598
7599  curl.1: Fix cmdline-opts reference errors.
7600
7601  --data, --form, and --ntlm were declared to be mutually exclusive with
7602  non-existing options. --data and --form referred to --upload (which is
7603  short for --upload-file and therefore did work, so this one was merely
7604  a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
7605
7606  Closes #2612
7607
7608- [Frank Gevaerts brought this change]
7609
7610  docs: fix cmdline-opts metadata headers case consistency.
7611
7612  Almost all headers start with an uppercase letter, but some didn't.
7613
7614- mailmap: Max Savenkov
7615
7616Sergei Nikulov (28 May 2018)
7617- [Max Savenkov brought this change]
7618
7619  Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
7620
7621Daniel Stenberg (27 May 2018)
7622- mailmap: a Richard Alcock fixup
7623
7624- [Richard Alcock brought this change]
7625
7626  schannel: add failf calls for client certificate failures
7627
7628  Closes #2604
7629
7630- [Richard Alcock brought this change]
7631
7632  winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
7633
7634  Change requirement from $(DISTDIR) to $(DIRDIST)
7635
7636  closes #2603
7637
7638- [Richard Alcock brought this change]
7639
7640  winbuild: only delete OUTFILE if it exists
7641
7642  This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
7643  "Could not find CURL_OBJS.inc.inc" message when building into a clean
7644  folder.
7645
7646  closes #2602
7647
7648- [Alejandro R. Sedeño brought this change]
7649
7650  content_encoding: handle zlib versions too old for Z_BLOCK
7651
7652  Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
7653
7654  Fixes #2606
7655  Closes #2608
7656
7657- multi: provide a socket to wait for in Curl_protocol_getsock
7658
7659  ... even when there's no protocol specific handler setup.
7660
7661  Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
7662  Reported-by: Sean Miller
7663  Closes #2600
7664
7665- [Linus Lewandowski brought this change]
7666
7667  httpauth: add support for Bearer tokens
7668
7669  Closes #2102
7670
7671- TODO: CURLINFO_PAUSE_STATE
7672
7673  Closes #2588
7674
7675Sergei Nikulov (24 May 2018)
7676- cmake: set -d postfix for debug builds if not specified
7677         using -DCMAKE_DEBUG_POSTFIX explicitly
7678
7679         fixes #2121, obsoletes #2384
7680
7681Daniel Stenberg (23 May 2018)
7682- configure: add basic test of --with-ssl prefix
7683
7684  When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
7685  $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
7686  error. Helps users detect when giving configure the wrong path.
7687
7688  Reported-by: Oleg Pudeyev
7689  Assisted-by: Per Malmberg
7690  Fixes #2580
7691
7692Patrick Monnerat (22 May 2018)
7693- http resume: skip body if http code 416 (range error) is ignored.
7694
7695  This avoids appending error data to already existing good data.
7696
7697  Test 92 is updated to match this change.
7698  New test 1156 checks all combinations of --range/--resume, --fail,
7699  Content-Range header and http status code 200/416.
7700
7701  Fixes #1163
7702  Reported-By: Ithubg on github
7703  Closes #2578
7704
7705Daniel Stenberg (22 May 2018)
7706- tftp: make sure error is zero terminated before printfing it
7707
7708- configure: add missing m4/ax_compile_check_sizeof.m4
7709
7710  follow-up to mistake in 6876ccf90b4
7711
7712Jay Satiro (22 May 2018)
7713- [Johannes Schindelin brought this change]
7714
7715  schannel: make CAinfo parsing resilient to CR/LF
7716
7717  OpenSSL has supported --cacert for ages, always accepting LF-only line
7718  endings ("Unix line endings") as well as CR/LF line endings ("Windows
7719  line endings").
7720
7721  When we introduced support for --cacert also with Secure Channel (or in
7722  cURL speak: "WinSSL"), we did not take care to support CR/LF line
7723  endings, too, even if we are much more likely to receive input in that
7724  form when using Windows.
7725
7726  Let's fix that.
7727
7728  Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
7729  accepts CR/LF input already, and the trailing LF before the END
7730  CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
7731  we need to care about is the BEGIN CERTIFICATE marker. We do not
7732  actually need to verify here that the line ending is CR/LF. Just
7733  checking for a CR or an LF is really plenty enough.
7734
7735  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7736
7737  Closes https://github.com/curl/curl/pull/2592
7738
7739Daniel Stenberg (22 May 2018)
7740- CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
7741
7742- RELEASE-NOTES: synced
7743
7744- KNOWN_BUGS: mention the -O with %-encoded file names
7745
7746  Closes #2573
7747
7748- checksrc: make sure sizeof() is used *with* parentheses
7749
7750  ... and unify the source code to adhere.
7751
7752  Closes #2563
7753
7754- curl: added --styled-output
7755
7756  It is enabled by default, so --no-styled-output will switch off the
7757  detection/use of bold headers.
7758
7759  Closes #2538
7760
7761- curl: show headers in bold
7762
7763  The feature is only enabled if the output is believed to be a tty.
7764
7765  -J: There's some minor differences and improvements in -J handling, as
7766  now J should work with -i and it actually creates a file first using the
7767  initial name and then *renames* that to the one found in
7768  Content-Disposition (if any).
7769
7770  -i: only shows headers for HTTP transfers now (as documented).
7771  Previously it would also show for pieces of the transfer that were HTTP
7772  (for example when doing FTP over a HTTP proxy).
7773
7774  -i: now shows trailers as well. Previously they were not shown at all.
7775
7776  --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
7777  now done in the header callback.
7778
7779- configure: compile-time SIZEOF checks
7780
7781  ... instead of exeucting code to get the size. Removes the use of
7782  LD_LIBRARY_PATH for this.
7783
7784  Fixes #2586
7785  Closes #2589
7786  Reported-by: Bernhard Walle
7787
7788- configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
7789
7790  ... and export LD_LIBRARY_PATH properly. This is a follow-up from
7791  2d4c215.
7792
7793  Fixes #2586
7794  Reported-by: Bernhard Walle
7795
7796- docs: clarify CURLOPT_HTTPGET somewhat
7797
7798  Reported-by: bsammon on github
7799  Fixes #2590
7800
7801- curl_fnmatch: only allow two asterisks for matching
7802
7803  The previous limit of 5 can still end up in situation that takes a very
7804  long time and consumes a lot of CPU.
7805
7806  If there is still a rare use case for this, a user can provide their own
7807  fnmatch callback for a version that allows a larger set of wildcards.
7808
7809  This commit was triggered by yet another OSS-Fuzz timeout due to this.
7810  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
7811
7812  Closes #2587
7813
7814- checksrc: fix too long line
7815
7816  follow-up to e05ad5d
7817
7818- [Aleks brought this change]
7819
7820  docs: mention HAproxy protocol "version 1"
7821
7822  ...as there's also a version 2.
7823
7824  Closes #2579
7825
7826- examples/progressfunc: make it build on older libcurls
7827
7828  This example was changed in ce2140a8c1 to use the new microsecond based
7829  getinfo option. This change makes it conditionally keep using the older
7830  option so that the example still builds with older libcurl versions.
7831
7832  Closes #2584
7833
7834- stub_gssapi: fix numerous 'unused parameter' warnings
7835
7836  follow-up to d9e92fd9fd1d
7837
7838- [Philip Prindeville brought this change]
7839
7840  getinfo: add microsecond precise timers for various intervals
7841
7842  Provide a set of new timers that return the time intervals using integer
7843  number of microseconds instead of floats.
7844
7845  The new info names are as following:
7846
7847  CURLINFO_APPCONNECT_TIME_T
7848  CURLINFO_CONNECT_TIME_T
7849  CURLINFO_NAMELOOKUP_TIME_T
7850  CURLINFO_PRETRANSFER_TIME_T
7851  CURLINFO_REDIRECT_TIME_T
7852  CURLINFO_STARTTRANSFER_TIME_T
7853  CURLINFO_TOTAL_TIME_T
7854
7855  Closes #2495
7856
7857- openssl: acknowledge --tls-max for default version too
7858
7859  ... previously it only used the max setting if a TLS version was also
7860  explicitly asked for.
7861
7862  Reported-by: byte_bucket
7863  Fixes #2571
7864  Closes #2572
7865
7866- bump: start working on the pending 7.61.0
7867
7868- [Dagobert Michelsen brought this change]
7869
7870  tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
7871
7872  The warning flag leads e.g. Sun Studio compiler to bail out.
7873
7874  Closes #2576
7875
7876- schannel_verify: fix build for non-schannel
7877
7878Jay Satiro (16 May 2018)
7879- rand: fix typo
7880
7881- schannel: disable manual verify if APIs not available
7882
7883  .. because original MinGW and old compilers do not have the Windows API
7884  definitions needed to support manual verification.
7885
7886- [Archangel_SDY brought this change]
7887
7888  schannel: disable client cert option if APIs not available
7889
7890  Original MinGW targets Windows 2000 by default, which lacks some APIs and
7891  definitions for this feature. Disable it if these APIs are not available.
7892
7893  Closes https://github.com/curl/curl/pull/2522
7894
7895Version 7.60.0 (15 May 2018)
7896
7897Daniel Stenberg (15 May 2018)
7898- RELEASE-NOTES: 7.60.0 release
7899
7900- THANKS: added people from the curl 7.60.0 release
7901
7902- docs/libcurl/index.html: removed
7903
7904  The HTML files are long gone from the dist, now remove the last HTML
7905  file pointing to those missing files.
7906
7907  d
7908
7909- [steini2000 brought this change]
7910
7911  http2: remove unused variable
7912
7913  Closes #2570
7914
7915- [steini2000 brought this change]
7916
7917  http2: use easy handle of stream for logging
7918
7919- gcc: disable picky gcc-8 function pointer warnings in two places
7920
7921  Reported-by: Rikard Falkeborn
7922  Bug: #2560
7923  Closes #2569
7924
7925- http2: use the correct function pointer typedef
7926
7927  Fixes gcc-8 picky compiler warnings
7928  Reported-by: Rikard Falkeborn
7929  Bug: #2560
7930  Closes #2568
7931
7932- CODE_STYLE: mention return w/o parens, but sizeof with
7933
7934  ... and remove the github markdown syntax so that it renders better on
7935  the web site. Also, don't use back-ticks inlined to allow the CSS to
7936  highlight source code better.
7937
7938- [Rikard Falkeborn brought this change]
7939
7940  examples: Fix format specifiers
7941
7942  Closes #2561
7943
7944- [Rikard Falkeborn brought this change]
7945
7946  tool: Fix format specifiers
7947
7948- [Rikard Falkeborn brought this change]
7949
7950  ntlm: Fix format specifiers
7951
7952- [Rikard Falkeborn brought this change]
7953
7954  tests: Fix format specifiers
7955
7956- [Rikard Falkeborn brought this change]
7957
7958  lib: Fix format specifiers
7959
7960- contributors.sh: use "on github", not at
7961
7962- http2: getsock fix for uploads
7963
7964  When there's an upload in progress, make sure to wait for the socket to
7965  become writable.
7966
7967  Detected-by: steini2000 on github
7968  Bug: #2520
7969  Closes #2567
7970
7971- pingpong: fix response cache memcpy overflow
7972
7973  Response data for a handle with a large buffer might be cached and then
7974  used with the "closure" handle when it has a smaller buffer and then the
7975  larger cache will be copied and overflow the new smaller heap based
7976  buffer.
7977
7978  Reported-by: Dario Weisser
7979  CVE: CVE-2018-1000300
7980  Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
7981
7982- http: restore buffer pointer when bad response-line is parsed
7983
7984  ... leaving the k->str could lead to buffer over-reads later on.
7985
7986  CVE: CVE-2018-1000301
7987  Assisted-by: Max Dymond
7988
7989  Detected by OSS-Fuzz.
7990  Bug: https://curl.haxx.se/docs/adv_2018-b138.html
7991  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
7992
7993Patrick Monnerat (13 May 2018)
7994- cookies: do not take cookie name as a parameter
7995
7996  RFC 6265 section 4.2.1 does not set restrictions on cookie names.
7997  This is a follow-up to commit 7f7fcd0.
7998  Also explicitly check proper syntax of cookie name/value pair.
7999
8000  New test 1155 checks that cookie names are not reserved words.
8001
8002  Reported-By: anshnd at github
8003  Fixes #2564
8004  Closes #2566
8005
8006Daniel Stenberg (12 May 2018)
8007- smb: reject negative file sizes
8008
8009  Assisted-by: Max Dymond
8010
8011  Detected by OSS-Fuzz
8012  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
8013