tftp: use the current blksize for recvfrom()
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Version 7.62.0 (30 Oct 2018)
10
11 Daniel Stenberg (30 Oct 2018)
12 - RELEASE-NOTES: 7.62.0
13
14 - THANKS: 7.62.0 status
15
16 Daniel Gustafsson (30 Oct 2018)
17 - vtls: add MesaLink to curl_sslbackend enum
18   
19   MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
20   backend was never added to the curl_sslbackend enum in curl/curl.h.
21   This adds the new backend to the enum and updates the relevant docs.
22   
23   Closes #3195
24   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
25
26 Daniel Stenberg (30 Oct 2018)
27 - [Ruslan Baratov brought this change]
28
29   cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
30   
31   Closes #3191
32
33 - test2080: verify the fix for CVE-2018-16842
34
35 - voutf: fix bad arethmetic when outputting warnings to stderr
36   
37   CVE-2018-16842
38   Reported-by: Brian Carpenter
39   Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
40
41 - [Tuomo Rinne brought this change]
42
43   cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
44   
45   Closes #3123
46
47 - [Tuomo Rinne brought this change]
48
49   cmake: add find_dependency call for ZLIB to CMake config file
50
51 - [Tuomo Rinne brought this change]
52
53   cmake: add support for transitive ZLIB target
54
55 - unit1650: fix "null pointer passed as argument 1 to memcmp"
56   
57   Detected by UndefinedBehaviorSanitizer
58   
59   Closes #3187
60
61 - travis: add a "make tidy" build that runs clang-tidy
62   
63   Closes #3182
64
65 - unit1300: fix stack-use-after-scope AddressSanitizer warning
66   
67   Closes #3186
68
69 - Curl_auth_create_plain_message: fix too-large-input-check
70   
71   CVE-2018-16839
72   Reported-by: Harry Sintonen
73   Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
74
75 - Curl_close: clear data->multi_easy on free to avoid use-after-free
76   
77   Regression from b46cfbc068 (7.59.0)
78   CVE-2018-16840
79   Reported-by: Brian Carpenter (Geeknik Labs)
80   
81   Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
82
83 - [randomswdev brought this change]
84
85   system.h: use proper setting with Sun C++ as well
86   
87   system.h selects the proper Sun settings when __SUNPRO_C is defined. The
88   Sun compiler does not define it when compiling C++ files.  I'm adding a
89   check also on __SUNPRO_CC to allow curl to work properly also when used
90   in a C++ project on Sun Solaris.
91   
92   Closes #3181
93
94 - rand: add comment to skip a clang-tidy false positive
95
96 - test1651: unit test Curl_extract_certinfo()
97   
98   The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
99
100 - x509asn1: always check return code from getASN1Element()
101
102 - Makefile: add 'tidy' target that runs clang-tidy
103   
104   Available in the root, src and lib dirs.
105   
106   Closes #3163
107
108 - RELEASE-PROCEDURE: adjust the release dates
109   
110   See: https://curl.haxx.se/mail/lib-2018-10/0107.html
111
112 Patrick Monnerat (27 Oct 2018)
113 - x509asn1: suppress left shift on signed value
114   
115   Use an unsigned variable: as the signed operation behavior is undefined,
116   this change silents clang-tidy about it.
117   
118   Ref: https://github.com/curl/curl/pull/3163
119   Reported-By: Daniel Stenberg
120
121 Michael Kaufmann (27 Oct 2018)
122 - multi: Fix error handling in the SENDPROTOCONNECT state
123   
124   If Curl_protocol_connect() returns an error code,
125   handle the error instead of switching to the next state.
126   
127   Closes #3170
128
129 Daniel Stenberg (27 Oct 2018)
130 - RELEASE-NOTES: synced
131
132 - openssl: output the correct cipher list on TLS 1.3 error
133   
134   When failing to set the 1.3 cipher suite, the wrong string pointer would
135   be used in the error message. Most often saying "(nil)".
136   
137   Reported-by: Ricky-Tigg on github
138   Fixes #3178
139   Closes #3180
140
141 - docs/CIPHERS: fix the TLS 1.3 cipher names
142   
143   ... picked straight from the OpenSSL man page:
144   https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
145   
146   Reported-by: Ricky-Tigg on github
147   Bug: #3178
148
149 Marcel Raad (27 Oct 2018)
150 - travis: install gnutls-bin package
151   
152   This is required for gnutls-serv, which enables a few more tests.
153   
154   Closes https://github.com/curl/curl/pull/2958
155
156 Daniel Gustafsson (26 Oct 2018)
157 - ssh: free the session on init failures
158   
159   Ensure to clear the session object in case the libssh2 initialization
160   fails.
161   
162   It could be argued that the libssh2 error function should be called to
163   get a proper error message in this case. But since the only error path
164   in libssh2_knownhost_init() is memory a allocation failure it's safest
165   to avoid since the libssh2 error handling allocates memory.
166   
167   Closes #3179
168   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
169
170 Daniel Stenberg (26 Oct 2018)
171 - docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
172   
173   ... I'm moving it up one week due to travels. The rest stays.
174
175 - [Daniel Gustafsson brought this change]
176
177   openssl: make 'done' a proper boolean
178   
179   Closes #3176
180
181 - gtls: Values stored to but never read
182   
183   Detected by clang-tidy
184   
185   Closes #3176
186
187 - [Alexey Eremikhin brought this change]
188
189   curl.1: --ipv6 mutexes ipv4 (fixed typo)
190   
191   Fixes #3171
192   Closes #3172
193
194 - tool_main: make TerminalSettings static
195   
196   Reported-by: Gisle Vanem
197   Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
198   Closes #3161
199
200 - curl-config.in: remove dependency on bc
201   
202   Reported-by: Dima Pasechnik
203   Fixes #3143
204   Closes #3174
205
206 - [Gisle Vanem brought this change]
207
208   rtmp: fix for compiling with lwIP
209   
210   Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
211     curl_rtmp.c(223,3):  error: use of undeclared identifier 'setsockopt'
212       setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
213       ^
214     curl_rtmp.c(41,32):  note: expanded from macro 'setsockopt'
215     #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
216                                    ^
217   Closes #3155
218
219 - configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
220   
221   Follow-up to #3166 which did the cmake part of this. This type/define is
222   not used.
223   
224   Closes #3168
225
226 - [Ruslan Baratov brought this change]
227
228   cmake: remove unused variables
229   
230   Remove variables:
231   * HAVE_SOCKLEN_T
232   * CURL_SIZEOF_CURL_SOCKLEN_T
233   * CURL_TYPEOF_CURL_SOCKLEN_T
234   
235   Closes #3166
236
237 Michael Kaufmann (25 Oct 2018)
238 - urldata: Fix comment in header
239   
240   The "connecting" function is used by multiple protocols, not only FTP
241
242 - netrc: free temporary strings if memory allocation fails
243   
244   - Change the inout parameters after all needed memory has been
245     allocated. Do not change them if something goes wrong.
246   - Free the allocated temporary strings if strdup() fails.
247   
248   Closes #3122
249
250 Daniel Stenberg (24 Oct 2018)
251 - [Ruslan Baratov brought this change]
252
253   config: Remove unused SIZEOF_VOIDP
254   
255   Closes #3162
256
257 - RELEASE-NOTES: synced
258
259 GitHub (23 Oct 2018)
260 - [Gisle Vanem brought this change]
261
262   Fix for compiling with lwIP (3)
263   
264   lwIP on Windows does not have a WSAIoctl() function.
265   But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.
266
267 Daniel Stenberg (23 Oct 2018)
268 - Curl_follow: return better errors on URL problems
269   
270   ... by making the converter function global and accessible.
271   
272   Closes #3153
273
274 - Curl_follow: remove remaining free(newurl)
275   
276   Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
277   URL.
278   
279   Reported-by: Michael Kaufmann
280   Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
281   ent-30985666
282
283 Daniel Gustafsson (23 Oct 2018)
284 - headers: end all headers with guard comment
285   
286   Most headerfiles end with a /* <headerguard> */ comment, but it was
287   missing from some. The comment isn't the most important part of our
288   code documentation but consistency has an intrinsic value in itself.
289   This adds header guard comments to the files that were lacking it.
290   
291   Closes #3158
292   Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
293   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
294
295 Jay Satiro (23 Oct 2018)
296 - CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
297   
298   Closes https://github.com/curl/curl/pull/3159
299
300 Daniel Stenberg (20 Oct 2018)
301 - docs/BUG-BOUNTY: the sponsors actually decide the amount
302   
303   Retract the previous approach as the sponsors will be the ones to set the
304   final amounts.
305   
306   Closes #3152
307   [ci skip]
308
309 - multi: avoid double-free
310   
311   Curl_follow() no longer frees the string. Make sure it happens in the
312   caller function, like we normally handle allocations.
313   
314   This bug was introduced with the use of the URL API internally, it has
315   never been in a release version
316   
317   Reported-by: Dario Weißer
318   Closes #3149
319
320 - multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
321   
322   Otherwise, closing that handle can still cause surprises!
323   
324   Reported-by: Martin Ankerl
325   Fixes #3138
326   Closes #3147
327
328 Marcel Raad (19 Oct 2018)
329 - VS projects: add USE_IPV6
330   
331   The Visual Studio builds didn't use IPv6. Add it to all projects since
332   Visual Studio 2008, which is verified to build via AppVeyor.
333   
334   Closes https://github.com/curl/curl/pull/3137
335
336 - config_win32: enable LDAPS
337   
338   As done in the autotools and CMake builds by default.
339   
340   Closes https://github.com/curl/curl/pull/3137
341
342 Daniel Stenberg (18 Oct 2018)
343 - travis: add build for "configure --disable-verbose"
344   
345   Closes #3144
346
347 Kamil Dudka (17 Oct 2018)
348 - tool_cb_hdr: handle failure of rename()
349   
350   Detected by Coverity.
351   
352   Closes #3140
353   Reviewed-by: Jay Satiro
354
355 Daniel Stenberg (17 Oct 2018)
356 - RELEASE-NOTES: synced
357
358 - docs/SECURITY-PROCESS: the hackerone IBB program drops curl
359   
360   ... now there's only BountyGraph.
361
362 Jay Satiro (16 Oct 2018)
363 - [Matthew Whitehead brought this change]
364
365   x509asn1: Fix SAN IP address verification
366   
367   For IP addresses in the subject alternative name field, the length
368   of the IP address (and hence the number of bytes to perform a
369   memcmp on) is incorrectly calculated to be zero. The code previously
370   subtracted q from name.end. where in a successful case q = name.end
371   and therefore addrlen equalled 0. The change modifies the code to
372   subtract name.beg from name.end to calculate the length correctly.
373   
374   The issue only affects libcurl with GSKit SSL, not other SSL backends.
375   The issue is not a security issue as IP verification would always fail.
376   
377   Fixes #3102
378   Closes #3141
379
380 Daniel Gustafsson (15 Oct 2018)
381 - INSTALL: mention mesalink in TLS section
382   
383   Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
384   MesaLink vtls backend, but missed updating the TLS section containing
385   supported backends in the docs.
386   
387   Closes #3134
388   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
389
390 Marcel Raad (14 Oct 2018)
391 - nonblock: fix unused parameter warning
392   
393   If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
394   used.
395
396 Michael Kaufmann (13 Oct 2018)
397 - Curl_follow: Always free the passed new URL
398   
399   Closes #3124
400
401 Viktor Szakats (12 Oct 2018)
402 - replace rawgit links [ci skip]
403   
404   Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
405   Ref: https://news.ycombinator.com/item?id=18202481
406   Closes https://github.com/curl/curl/pull/3131
407
408 Daniel Stenberg (12 Oct 2018)
409 - docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
410   
411   [ci skip]
412
413 - travis: make distcheck scan for BOM markers
414   
415   and remove BOM from projects/wolfssl_override.props
416   
417   Closes #3126
418
419 Marcel Raad (11 Oct 2018)
420 - CMake: remove BOM
421   
422   Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
423   
424   Reported-by: Viktor Szakats
425   Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136
426
427 Daniel Gustafsson (10 Oct 2018)
428 - transfer: fix typo in comment
429
430 Michael Kaufmann (10 Oct 2018)
431 - docs: add "see also" links for SSL options
432   
433   - link TLS 1.2 and TLS 1.3 options
434   - link proxy and non-proxy options
435   
436   Closes #3121
437
438 Marcel Raad (10 Oct 2018)
439 - AppVeyor: remove BDIR variable that sneaked in again
440   
441   Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
442   again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.
443
444 - CMake: disable -Wpedantic-ms-format
445   
446   As done in the autotools build. This is required for MinGW, which
447   supports only %I64 for printing 64-bit values, but warns about it.
448   
449   Closes https://github.com/curl/curl/pull/3120
450
451 Viktor Szakats (9 Oct 2018)
452 - ldap: show precise LDAP call in error message on Windows
453   
454   Also add a unique but common text ('bind via') to make it
455   easy to grep this specific failure regardless of platform.
456   
457   Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
458   Closes https://github.com/curl/curl/pull/3118
459   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
460   Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
461
462 Daniel Stenberg (9 Oct 2018)
463 - docs/DEPRECATE: minor reformat to render nicer on web
464
465 Daniel Gustafsson (9 Oct 2018)
466 - CURLOPT_SSL_VERIFYSTATUS: Fix typo
467   
468   Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
469
470 Marcel Raad (9 Oct 2018)
471 - curl_setup: define NOGDI on Windows
472   
473   This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
474   on MinGW.
475   
476   Closes https://github.com/curl/curl/pull/3113
477
478 - Windows: fixes for MinGW targeting Windows Vista
479   
480   Classic MinGW has neither InitializeCriticalSectionEx nor
481   GetTickCount64, independent of the target Windows version.
482   
483   Closes https://github.com/curl/curl/pull/3113
484
485 Daniel Stenberg (8 Oct 2018)
486 - TODO: fixed 'API for URL parsing/splitting'
487
488 Daniel Gustafsson (8 Oct 2018)
489 - KNOWN_BUGS: Fix various typos
490   
491   Closes #3112
492   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
493
494 Viktor Szakats (8 Oct 2018)
495 - spelling fixes [ci skip]
496   
497   as detected by codespell 1.14.0
498   
499   Closes https://github.com/curl/curl/pull/3114
500   Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
501
502 Daniel Stenberg (8 Oct 2018)
503 - RELEASE-NOTES: synced
504
505 - curl_ntlm_wb: check aprintf() return codes
506   
507   ... when they return NULL we're out of memory and MUST return failure.
508   
509   closes #3111
510
511 - docs/BUG-BOUNTY: proposed additional docs
512   
513   Bug bounty explainer. See https://bountygraph.com/programs/curl
514   
515   Closes #3067
516
517 - [Rick Deist brought this change]
518
519   hostip: fix check on Curl_shuffle_addr return value
520   
521   Closes #3110
522
523 - FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
524   
525   Now FILE transfers send headers to the header callback like HTTP and
526   other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
527   work for FILE in the callbacks.
528   
529   Makes "curl -i file://.." and "curl -I file://.." work like before
530   again. Applied the bold header logic to them too.
531   
532   Regression from c1c2762 (7.61.0)
533   
534   Reported-by: Shaun Jackman
535   Fixes #3083
536   Closes #3101
537
538 Daniel Gustafsson (7 Oct 2018)
539 - gskit: make sure to terminate version string
540   
541   In case a very small buffer was passed to the version function, it could
542   result in the buffer not being NULL-terminated since strncpy() doesn't
543   guarantee a terminator on an overflowed buffer. Rather than adding code
544   to terminate (and handle zero-sized buffers), move to using snprintf()
545   instead like all the other vtls backends.
546   
547   Closes #3105
548   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
549   Reviewed-by: Viktor Szakats <commit@vszakats.net>
550
551 - TODO: add LD_PRELOAD support on macOS
552   
553   Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.
554
555 - runtests: skip ld_preload tests on macOS
556   
557   The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
558   requiring it.
559   
560   Fixes #2394
561   Closes #3106
562   Reported-by: Github user @jakirkham
563   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
564
565 Marcel Raad (7 Oct 2018)
566 - AppVeyor: use Debug builds to run tests
567   
568   This enables more tests.
569   
570   Closes https://github.com/curl/curl/pull/3104
571
572 - AppVeyor: add HTTP_ONLY build
573   
574   Closes https://github.com/curl/curl/pull/3104
575
576 - AppVeyor: add WinSSL builds
577   
578   Use the oldest and latest Windows SDKs for them.
579   Also, remove all but one OpenSSL build.
580   
581   Closes https://github.com/curl/curl/pull/3104
582
583 - AppVeyor: add remaining Visual Studio versions
584   
585   This adds Visual Studio 9 and 10 builds.
586   There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
587   build. Also, VC9 cannot be used for running the test suite.
588   
589   Closes https://github.com/curl/curl/pull/3104
590
591 - AppVeyor: break long line
592   
593   Closes https://github.com/curl/curl/pull/3104
594
595 - AppVeyor: remove unused BDIR variable
596   
597   Closes https://github.com/curl/curl/pull/3104
598
599 Daniel Stenberg (6 Oct 2018)
600 - test2100: test DoH using IPv4-only
601   
602   To make it only send one DoH request and avoid the race condition that
603   could lead to the requests getting sent in reversed order and thus
604   making it hard to compare in the test case.
605   
606   Fixes #3107
607   Closes #3108
608
609 - tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
610   
611   [ci skip]
612
613 - RELEASE-NOTES: synced
614
615 - [Dmitry Kostjuchenko brought this change]
616
617   timeval: fix use of weak symbol clock_gettime() on Apple platforms
618   
619   Closes #3048
620
621 - doh: keep the IPv4 address in (original) network byte order
622   
623   Ideally this will fix the reversed order shown in SPARC tests:
624   
625     resp 8: Expected 127.0.0.1 got 1.0.0.127
626   
627   Closes #3091
628
629 Jay Satiro (5 Oct 2018)
630 - INTERNALS.md: wrap lines longer than 79
631
632 Daniel Gustafsson (5 Oct 2018)
633 - INTERNALS: escape reference to parameter
634   
635   The parameter reference <string> was causing rendering issues in the
636   generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
637   tick escaping it.
638   
639   Closes #3099
640   Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
641   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
642
643 - checksrc: handle zero scoped ignore commands
644   
645   If a !checksrc! disable command specified to ignore zero errors, it was
646   still added to the ignore block even though nothing was ignored. While
647   there were no blocks ignored that shouldn't be ignored, the processing
648   ended with with a warning:
649   
650   <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
651    /* !checksrc! disable LONGLINE 0 */
652                       ^
653   Fix by instead treating a zero ignore as a a badcommand and throw a
654   warning for that one.
655   
656   Closes #3096
657   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
658
659 - checksrc: enable strict mode and warnings
660   
661   Enable strict and warnings mode for checksrc to ensure we aren't missing
662   anything due to bugs in the checking code. This uncovered a few things
663   which are all fixed in this commit:
664   
665   * several variables were used uninitialized
666   * several variables were not defined in the correct scope
667   * the whitelist filehandle was read even if the file didn't exist
668   * the enable_warn() call when a disable counter had expired was passing
669     incorrect variables, but since the checkwarn() call is unlikely to hit
670     (the counter is only decremented to zero on actual ignores) it didn't
671     manifest a problem.
672   
673   Closes #3090
674   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
675   Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
676
677 Marcel Raad (5 Oct 2018)
678 - CMake: suppress MSVC warning C4127 for libtest
679   
680   It's issued by older Windows SDKs (prior to version 8.0).
681
682 Sergei Nikulov (5 Oct 2018)
683 - Merge branch 'dmitrykos-fix_missing_CMake_defines'
684
685 - [Dmitry Kostjuchenko brought this change]
686
687   cmake: test and set missed defines during configuration
688   
689   Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
690   
691   Closes #3097
692
693 Marcel Raad (5 Oct 2018)
694 - AppVeyor: disable test 500
695   
696   It almost always results in
697   "starttransfer vs total: 0.000001 0.000000".
698   I cannot reproduce this locally, so disable it for now.
699   
700   Closes https://github.com/curl/curl/pull/3100
701
702 - AppVeyor: set custom install prefix
703   
704   CMake's default has spaces and in 32-bit mode parentheses, which result
705   in syntax errors in curl-config.
706   
707   Closes https://github.com/curl/curl/pull/3100
708
709 - AppVeyor: Remove non-SSL non-test builds
710   
711   They don't add much value.
712   
713   Closes https://github.com/curl/curl/pull/3100
714
715 - AppVeyor: run test suite
716   
717   Use the preinstalled MSYS2 bash for that.
718   Disable test 1139 as the CMake build doesn't generate curl.1.
719   
720   Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
721   Closes https://github.com/curl/curl/pull/3100
722
723 - AppVeyor: use in-tree build
724   
725   Required to run the tests.
726   
727   Closes https://github.com/curl/curl/pull/3100
728
729 Daniel Stenberg (4 Oct 2018)
730 - doh: make sure TTL isn't re-inited by second (discarded?) response
731   
732   Closes #3092
733
734 - test320: strip out more HTML when comparing
735   
736   To make the test case work with different gnutls-serv versions better.
737   
738   Reported-by: Kamil Dudka
739   Fixes #3093
740   Closes #3094
741
742 Marcel Raad (4 Oct 2018)
743 - runtests: use Windows paths for Windows curl
744   
745   curl generated by CMake's Visual Studio generator has "Windows" in the
746   version number.
747
748 Daniel Stenberg (4 Oct 2018)
749 - [Colin Hogben brought this change]
750
751   tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
752   
753   Fix problems caused by differences in treatment of bytes objects between
754   python2 and python3.
755   
756   Fixes #2929
757   Closes #3080
758
759 Daniel Gustafsson (3 Oct 2018)
760 - memory: ensure to check allocation results
761   
762   The result of a memory allocation should always be checked, as we may
763   run under memory pressure where even a small allocation can fail. This
764   adds checking and error handling to a few cases where the allocation
765   wasn't checked for success. In the ftp case, the freeing of the path
766   variable is moved ahead of the allocation since there is little point
767   in keeping it around across the strdup, and the separation makes for
768   more readable code. In nwlib, the lock is aslo freed in the error path.
769   
770   Also bumps the copyright years on affected files.
771   
772   Closes #3084
773   Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
774   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
775
776 - comment: Fix multiple typos in function parameters
777   
778   Ensure that the parameters in the comment match the actual names in the
779   prototype.
780   
781   Closes #3079
782   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
783
784 - CURLOPT_SSLVERSION.3: fix typos and consistent spelling
785   
786   Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
787   already done in all but a few cases. Also fix a few typos.
788   
789   Closes #3076
790   Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
791   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
792
793 - SECURITY-PROCESS: make links into hyperlinks
794   
795   Use proper Markdown hyperlink format for the Bountygraph links in order
796   for the generated website page to be more user friendly. Also link to
797   the sponsors to give them a little extra credit.
798   
799   Closes #3082
800   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
801
802 Jay Satiro (3 Oct 2018)
803 - CURLOPT_HEADER.3: fix typo
804
805 - nss: fix nssckbi module loading on Windows
806   
807   - Use .DLL extension instead of .so to load modules on Windows.
808   
809   Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
810   Reported-by: Maxime Legros
811   
812   Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
813   
814   Closes https://github.com/curl/curl/pull/3086
815
816 - data-binary.d: clarify default content-type is x-www-form-urlencoded
817   
818   - Advise user that --data-binary sends a default content type of
819     x-www-form-urlencoded, and to have the data treated as arbitrary
820     binary data by the server set the content-type header to octet-stream.
821   
822   Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
823   
824   Closes https://github.com/curl/curl/pull/3085
825
826 Marcel Raad (2 Oct 2018)
827 - test1299: use single quotes around asterisk
828   
829   Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
830
831 Daniel Stenberg (2 Oct 2018)
832 - docs/CIPHERS: mention the colon separation for OpenSSL
833   
834   Bug: #3077
835
836 - runtests: ignore disabled even when ranges are given
837   
838   runtests.pl support running a range of tests, like "44 to 127". Starting
839   now, the code makes sure that even such given ranges will ignore tests
840   that are marked as disabled.
841   
842   Disabled tests can still be run by explictly specifying that test
843   number.
844   
845   Closes #3075
846
847 - urlapi: starting with a drive letter on win32 is not an abs url
848   
849   ... and libcurl doesn't support any single-letter URL schemes (if there
850   even exist any) so it should be fairly risk-free.
851   
852   Reported-by: Marcel Raad
853   
854   Fixes #3070
855   Closes #3071
856
857 Marcel Raad (2 Oct 2018)
858 - doh: fix curl_easy_setopt argument type
859   
860   CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
861   MinGW.
862
863 Daniel Stenberg (2 Oct 2018)
864 - RELEASE-NOTES: synced
865
866 Jay Satiro (1 Oct 2018)
867 - [Ruslan Baratov brought this change]
868
869   CMake: Improve config installation
870   
871   Use 'GNUInstallDirs' standard module to set destinations of installed
872   files.
873   
874   Use uppercase "CURL" names instead of lowercase "curl" to match standard
875   'FindCURL.cmake' CMake module:
876   * https://cmake.org/cmake/help/latest/module/FindCURL.html
877   
878   Meaning:
879   * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
880   * User should call 'find_package(CURL)' instead of 'find_package(curl)'
881   
882   Use 'configure_package_config_file' function to generate
883   'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
884   file smaller and handle components better.  E.g.  current configuration
885   report no error if user specified unknown components (note: new
886   configuration expects no components, report error if user will try to
887   specify any).
888   
889   Closes https://github.com/curl/curl/pull/2849
890
891 Daniel Stenberg (1 Oct 2018)
892 - test1650: make it depend on http/2
893   
894   Follow-up to 570008c99da0ccbb as it gets link errors.
895   
896   Reported-by: Michael Kaufmann
897   Closes #3068
898
899 - [Nate Prewitt brought this change]
900
901   MANUAL: minor grammar fix
902   
903   Noticed a typo reading through the docs.
904   
905   Closes #3069
906
907 - doh: only build if h2 enabled
908   
909   The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
910   of HTTP for use with DoH".
911   
912   Reported-by: Marcel Raad
913   Closes #3066
914
915 - test2100: require http2 to run
916   
917   Reported-by: Marcel Raad
918   Fixes #3064
919   Closes #3065
920
921 - multi: fix memory leak in content encoding related error path
922   
923   ... a missing multi_done() call.
924   
925   Credit to OSS-Fuzz
926   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
927   Closes #3063
928
929 - travis: bump the Secure Transport build to use xcode 10
930   
931   Due to an issue with travis
932   (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
933   Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
934   an alternative and as it builds curl+darwinssl fine that seems like a
935   better choice.
936   
937   Closes #3062
938
939 - [Rich Turner brought this change]
940
941   curl: enabled Windows VT Support and UTF-8 output
942   
943   Enabled Console VT support (if running OS supports VT) in tool_main.c.
944   
945   Fixes #3008
946   Closes #3011
947
948 - multi: fix location URL memleak in error path
949   
950   Follow-up to #3044 - fix a leak OSS-Fuzz detected
951   Closes #3057
952
953 Sergei Nikulov (28 Sep 2018)
954 - cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)
955
956 - [Brad King brought this change]
957
958   cmake: Backport to work with CMake 3.0 again
959   
960   Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
961   instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
962   bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
963   issue #2746.  This broke support for users on older versions of CMake
964   even if they just want to build curl and do not care whether transitive
965   dependencies work.
966   
967   Backport the logic to work with CMake 3.0 again by implementing the
968   fix only when the version of CMake is at least 3.4.
969
970 Marcel Raad (27 Sep 2018)
971 - curl_threads: fix classic MinGW compile break
972   
973   Classic MinGW still has _beginthreadex's return type as unsigned long
974   instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
975   
976   [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
977   [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
978   
979   Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
980   Closes https://github.com/curl/curl/pull/3051
981
982 Daniel Stenberg (26 Sep 2018)
983 - configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
984   
985   fix a few leftovers
986   
987   Fixes #3006
988   Closes #3049
989
990 - [Doron Behar brought this change]
991
992   example/htmltidy: fix include paths of tidy libraries
993   
994   Closes #3050
995
996 - RELEASE-NOTES: synced
997
998 - Curl_http2_done: fix memleak in error path
999   
1000   Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
1001   early failures.
1002   
1003   Detected by OSS-Fuzz
1004   
1005   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
1006   Closes #3046
1007
1008 - http: fix memleak in rewind error path
1009   
1010   If the rewind would fail, a strdup() would not get freed.
1011   
1012   Detected by OSS-Fuzz
1013   
1014   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
1015   Closes #3044
1016
1017 Viktor Szakats (24 Sep 2018)
1018 - test320: fix regression in [ci skip]
1019   
1020   The value in question is coming directly from `gnutls-serv`, so it cannot
1021   be modified freely.
1022   
1023   Reported-by: Marcel Raad
1024   Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004
1025
1026 Daniel Stenberg (24 Sep 2018)
1027 - Curl_retry_request: fix memory leak
1028   
1029   Detected by OSS-Fuzz
1030   
1031   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
1032   Closes #3042
1033
1034 - openssl: load built-in engines too
1035   
1036   Regression since 38203f1
1037   
1038   Reported-by: Jean Fabrice
1039   Fixes #3023
1040   Closes #3040
1041
1042 - [Christian Heimes brought this change]
1043
1044   OpenSSL: enable TLS 1.3 post-handshake auth
1045   
1046   OpenSSL 1.1.1 requires clients to opt-in for post-handshake
1047   authentication.
1048   
1049   Fixes: https://github.com/curl/curl/issues/3026
1050   Signed-off-by: Christian Heimes <christian@python.org>
1051   
1052   Closes https://github.com/curl/curl/pull/3027
1053
1054 - [Even Rouault brought this change]
1055
1056   Curl_dedotdotify(): always nul terminate returned string.
1057   
1058   This fixes potential out-of-buffer access on "file:./" URL
1059   
1060   $ valgrind curl "file:./"
1061   ==24516== Memcheck, a memory error detector
1062   ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
1063   ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
1064   ==24516== Command: /home/even/install-curl-git/bin/curl file:./
1065   ==24516==
1066   ==24516== Conditional jump or move depends on uninitialised value(s)
1067   ==24516==    at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
1068   ==24516==    by 0x4EBB315: seturl (urlapi.c:801)
1069   ==24516==    by 0x4EBB568: parseurl (urlapi.c:861)
1070   ==24516==    by 0x4EBC509: curl_url_set (urlapi.c:1199)
1071   ==24516==    by 0x4E644C6: parseurlandfillconn (url.c:2044)
1072   ==24516==    by 0x4E67AEF: create_conn (url.c:3613)
1073   ==24516==    by 0x4E68A4F: Curl_connect (url.c:4119)
1074   ==24516==    by 0x4E7F0A4: multi_runsingle (multi.c:1440)
1075   ==24516==    by 0x4E808E5: curl_multi_perform (multi.c:2173)
1076   ==24516==    by 0x4E7558C: easy_transfer (easy.c:686)
1077   ==24516==    by 0x4E75801: easy_perform (easy.c:779)
1078   ==24516==    by 0x4E75868: curl_easy_perform (easy.c:798)
1079   
1080   Was originally spotted by
1081   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
1082   Credit to OSS-Fuzz
1083   
1084   Closes #3039
1085
1086 Viktor Szakats (23 Sep 2018)
1087 - update URLs in tests
1088   
1089   - and one in docs/MANUAL as well
1090   
1091   Closes https://github.com/curl/curl/pull/3038
1092
1093 - whitespace fixes
1094   
1095   - replace tabs with spaces where possible
1096   - remove line ending spaces
1097   - remove double/triple newlines at EOF
1098   - fix a non-UTF-8 character
1099   - cleanup a few indentations/line continuations
1100     in manual examples
1101   
1102   Closes https://github.com/curl/curl/pull/3037
1103
1104 Daniel Stenberg (23 Sep 2018)
1105 - http: add missing return code check
1106   
1107   Detected by Coverity. CID 1439610.
1108   
1109   Follow-up from 46e164069d1a523
1110   
1111   Closes #3034
1112
1113 - ftp: don't access pointer before NULL check
1114   
1115   Detected by Coverity. CID 1439611.
1116   
1117   Follow-up from 46e164069d1a523
1118
1119 - unit1650: fix out of boundary access
1120   
1121   Fixes #2987
1122   Closes #3035
1123
1124 Viktor Szakats (23 Sep 2018)
1125 - docs/examples: URL updates
1126   
1127   - also update two URLs outside of docs/examples
1128   - fix spelling of filename persistant.c
1129   - fix three long lines that started failing checksrc.pl
1130   
1131   Closes https://github.com/curl/curl/pull/3036
1132
1133 - examples/Makefile.m32: sync with core [ci skip]
1134   
1135   also:
1136   - fix two warnings in synctime.c (one of them Windows-specific)
1137   - upgrade URLs in synctime.c and remove a broken one
1138   
1139   Closes https://github.com/curl/curl/pull/3033
1140
1141 Daniel Stenberg (22 Sep 2018)
1142 - examples/parseurl.c: show off the URL API a bit
1143   
1144   Closes #3030
1145
1146 - SECURITY-PROCESS: mention the bountygraph program [ci skip]
1147   
1148   Closes #3032
1149
1150 - url: use the URL API internally as well
1151   
1152   ... to make it a truly unified URL parser.
1153   
1154   Closes #3017
1155
1156 Viktor Szakats (22 Sep 2018)
1157 - URL and mailmap updates, remove an obsolete directory [ci skip]
1158   
1159   Closes https://github.com/curl/curl/pull/3031
1160
1161 Daniel Stenberg (22 Sep 2018)
1162 - RELEASE-NOTES: synced
1163
1164 - configure: force-use -lpthreads on HPUX
1165   
1166   When trying to detect pthreads use on HPUX the checks will succeed
1167   without the correct -l option but then end up failing at run-time.
1168   
1169   Reported-by: Eason-Yu on github
1170   Fixes #2697
1171   Closes #3025
1172
1173 - [Erik Minekus brought this change]
1174
1175   Curl_saferealloc: Fixed typo in docblock
1176   
1177   Closes #3029
1178
1179 - urlapi: fix support for address scope in IPv6 numerical addresses
1180   
1181   Closes #3024
1182
1183 - [Loganaden Velvindron brought this change]
1184
1185   GnutTLS: TLS 1.3 support
1186   
1187   Closes #2971
1188
1189 - TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
1190   
1191   Removed DoH.
1192   
1193   Closes #2734
1194
1195 Jay Satiro (20 Sep 2018)
1196 - vtls: fix ssl version "or later" behavior change for many backends
1197   
1198   - Treat CURL_SSLVERSION_MAX_NONE the same as
1199     CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
1200     the minimum version also as the maximum.
1201   
1202   This is a follow-up to 6015cef which changed the behavior of setting
1203   the SSL version so that the requested version would only be the minimum
1204   and not the maximum. It appears it was (mostly) implemented in OpenSSL
1205   but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
1206   mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
1207   
1208   - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
1209   
1210   Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
1211   erroneously treated as always TLS 1.3, and would cause an error if
1212   OpenSSL was built without TLS 1.3 support.
1213   
1214   Co-authored-by: Daniel Gustafsson
1215   
1216   Fixes https://github.com/curl/curl/issues/2969
1217   Closes https://github.com/curl/curl/pull/3012
1218
1219 Daniel Stenberg (20 Sep 2018)
1220 - certs: generate tests certs with sha256 digest algorithm
1221   
1222   As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
1223   
1224   "SSL certificate problem: CA signature digest algorithm too weak"
1225   
1226   Closes #3014
1227
1228 - urlapi: document the error codes, remove two unused ones
1229   
1230   Assisted-by: Daniel Gustafsson
1231   Closes #3019
1232
1233 - urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
1234   
1235   In order for this API to fully work for libcurl itself, it now offers a
1236   CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
1237   name prefix just like libcurl always did. If there's no known prefix, it
1238   will guess "http://".
1239   
1240   Separately, it relaxes the check of the host name so that IDN host names
1241   can be passed in as well.
1242   
1243   Both these changes are necessary for libcurl itself to use this API.
1244   
1245   Assisted-by: Daniel Gustafsson
1246   Closes #3018
1247
1248 Kamil Dudka (19 Sep 2018)
1249 - nss: try to connect even if libnssckbi.so fails to load
1250   
1251   One can still use CA certificates stored in NSS database.
1252   
1253   Reported-by: Maxime Legros
1254   Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
1255   
1256   Closes #3016
1257
1258 Daniel Gustafsson (19 Sep 2018)
1259 - urlapi: don't set value which is never read
1260   
1261   In the CURLUPART_URL case, there is no codepath which invokes url
1262   decoding so remove the assignment of the urldecode variable. This
1263   fixes the deadstore bug-report from clang static analysis.
1264   
1265   Closes #3015
1266   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1267
1268 - todo: Update reference to already done item
1269   
1270   TODO item 1.1 was implemented in commit 946ce5b61f, update reference
1271   to it with instead referencing the implemented option.
1272   
1273   Closes #3013
1274   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1275
1276 Daniel Stenberg (18 Sep 2018)
1277 - RELEASE-NOTES: synced
1278
1279 - [slodki brought this change]
1280
1281   cmake: don't require OpenSSL if USE_OPENSSL=OFF
1282   
1283   User must have OpenSSL installed even if not used by libcurl at all
1284   since 7.61.1 release.  Broken at
1285   7867aaa9a01decf93711428462335be8cef70212
1286   
1287   Reviewed-by: Sergei Nikulov
1288   Closes #3001
1289
1290 - curl_multi_wait: call getsock before figuring out timeout
1291   
1292   .... since getsock may update the expiry timer.
1293   
1294   Fixes #2996
1295   Closes #3000
1296
1297 - examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
1298   
1299   Closes #3004
1300
1301 Daniel Gustafsson (18 Sep 2018)
1302 - darwinssl: Fix realloc memleak
1303   
1304   The reallocation was using the input pointer for the return value, which
1305   leads to a memory leak on reallication failure. Fix by instead use the
1306   safe internal API call Curl_saferealloc().
1307   
1308   Closes #3005
1309   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1310   Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
1311
1312 - [Kruzya brought this change]
1313
1314   examples: Fix memory leaks from realloc errors
1315   
1316   Make sure to not overwrite the reallocated pointer in realloc() calls
1317   to avoid a memleak on memory errors.
1318
1319 - memory: add missing curl_printf header
1320   
1321   ftp_send_command() was using vsnprintf() without including the libcurl
1322   *rintf() replacement header. Fix by including curl_printf.h and also
1323   add curl_memory.h while at it since memdebug.h depends on it.
1324   
1325   Closes #2999
1326   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1327
1328 Daniel Stenberg (16 Sep 2018)
1329 - [Si brought this change]
1330
1331   curl: update --tlsv* descriptions in --help output
1332   
1333   Closes #2994
1334
1335 - http: made Curl_add_buffer functions take a pointer-pointer
1336   
1337   ... so that they can clear the original pointer on failure, which makes
1338   the error-paths and their cleanups easier.
1339   
1340   Closes #2992
1341
1342 - http2: fix memory leaks on error-path
1343
1344 - [Rikard Falkeborn brought this change]
1345
1346   libtest: Add chkdecimalpoint to .gitignore
1347   
1348   Closes #2998
1349
1350 Viktor Szakats (14 Sep 2018)
1351 - secure Openwall URLs
1352
1353 Daniel Stenberg (14 Sep 2018)
1354 - openssl: show "proper" version number for libressl builds
1355   
1356   Closes #2989
1357
1358 - [Rainer Jung brought this change]
1359
1360   openssl: assume engine support in 0.9.8 or later
1361   
1362   Fixes #2983
1363   Closes #2988
1364
1365 Daniel Gustafsson (13 Sep 2018)
1366 - sendf: use failf() rather than Curl_failf()
1367   
1368   The failf() macro is the name used for invoking Curl_failf(). While
1369   there isn't a way to turn off failf like there is for infof, but it's
1370   still a good idea to use the macro.
1371   
1372   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1373
1374 - sendf: Fix whitespace in infof/failf concatenation
1375   
1376   Strings broken on multiple rows in the .c file need to have appropriate
1377   whitespace padding on either side of the concatenation point to render
1378   a correct amalgamated string. Fix by adding a space at the occurrences
1379   found.
1380   
1381   Closes #2986
1382   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1383
1384 - krb5: fix memory leak in krb_auth
1385   
1386   The FTP command allocated by aprintf() must be freed after usage.
1387   
1388   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1389
1390 - ftp: include command in Curl_ftpsend sendbuffer
1391   
1392   Commit 8238ba9c5f10414a88f502bf3f5d5a42d632984c inadvertently removed
1393   the actual command to be sent from the send buffer in a refactoring.
1394   Add back copying the command into the buffer. Also add more guards
1395   against malformed input while at it.
1396   
1397   Closes #2985
1398   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1399
1400 - ntlm_wb: Fix memory leaks in ntlm_wb_response
1401   
1402   When erroring out on a request being too large, the existing buffer was
1403   leaked. Fix by explicitly freeing on the way out.
1404   
1405   Closes #2966
1406   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1407
1408 Daniel Stenberg (13 Sep 2018)
1409 - [Yiming Jing brought this change]
1410
1411   travis: build the MesaLink vtls backend with MesaLink 0.7.1
1412
1413 - [Yiming Jing brought this change]
1414
1415   runtests.pl: run tests against the MesaLink vtls backend
1416
1417 - [Yiming Jing brought this change]
1418
1419   vtls: add a MesaLink vtls backend
1420   
1421   Closes #2984
1422
1423 - [Yiming Jing brought this change]
1424
1425   configure.ac: add a MesaLink vtls backend
1426
1427 - [Dave Reisner brought this change]
1428
1429   curl_url_set.3: properly escape \n in example code
1430   
1431   This yields
1432   
1433     "the scheme is %s\n"
1434   
1435   instead of
1436   
1437     "the scheme is %s0
1438   
1439   Closes #2970
1440
1441 - [Dave Reisner brought this change]
1442
1443   curl_url_set.3: fix typo in reference to CURLU_APPENDQUERY
1444
1445 - urlglob: improve error message
1446   
1447   to help user understand what the problem is
1448   
1449   Reported-by: Daniel Shahaf
1450   
1451   Fixes #2763
1452   Closes #2977
1453
1454 - [Yiming Jing brought this change]
1455
1456   tests/certs: rebuild certs with 2048-bit RSA keys
1457   
1458   The previous test certificates contained RSA keys of only 1024 bits.
1459   However, RSA claims that 1024-bit RSA keys are likely to become
1460   crackable some time before 2010. The NIST recommends at least 2048-bit
1461   keys for RSA for now.
1462   
1463   Better use full 2048 also for testing.
1464   
1465   Closes #2973
1466
1467 Daniel Gustafsson (12 Sep 2018)
1468 - TODO: fix typo in item
1469   
1470   Closes #2968
1471   Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1472
1473 Marcel Raad (12 Sep 2018)
1474 - anyauthput: fix compiler warning on 64-bit Windows
1475   
1476   On Windows, the read function from <io.h> is used, which has its byte
1477   count parameter as unsigned int instead of size_t.
1478   
1479   Closes https://github.com/curl/curl/pull/2972
1480
1481 Viktor Szakats (12 Sep 2018)
1482 - lib: fix gcc8 warning on Windows
1483   
1484   Closes https://github.com/curl/curl/pull/2979
1485
1486 Jay Satiro (12 Sep 2018)
1487 - openssl: fix gcc8 warning
1488   
1489   - Use memcpy instead of strncpy to copy a string without termination,
1490     since gcc8 warns about using strncpy to copy as many bytes from a
1491     string as its length.
1492   
1493   Suggested-by: Viktor Szakats
1494   
1495   Closes https://github.com/curl/curl/issues/2980
1496
1497 Daniel Stenberg (10 Sep 2018)
1498 - libcurl-url.3: overview man page for the URL API
1499   
1500   Closes #2967
1501
1502 - example/asiohiper: insert warning comment about its status
1503   
1504   This example is simply not working correctly but there's nobody around
1505   with the skills and energy to fix it.
1506   
1507   Closes #2407
1508
1509 Kamil Dudka (10 Sep 2018)
1510 - docs/cmdline-opts: update the documentation of --tlsv1.0
1511   
1512   ... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
1513   
1514   Closes #2955
1515
1516 - docs/examples: do not wait when no transfers are running
1517   
1518   Closes #2948
1519
1520 Daniel Stenberg (10 Sep 2018)
1521 - [Daniel Gustafsson brought this change]
1522
1523   cookies: Move failure case label to end of function
1524   
1525   Rather than jumping backwards to where failure cleanup happens
1526   to be performed, move the failure case to end of the function
1527   where it is expected per existing coding convention.
1528   
1529   Closes #2965
1530
1531 - [Daniel Gustafsson brought this change]
1532
1533   misc: fix typos in comments
1534   
1535   Closes #2963
1536
1537 - [Daniel Gustafsson brought this change]
1538
1539   cookies: fix leak when writing cookies to file
1540   
1541   If the formatting fails, we error out on a fatal error and
1542   clean up on the way out. The array was however freed within
1543   the wrong scope and was thus never freed in case the cookies
1544   were written to a file instead of STDOUT.
1545   
1546   Closes #2957
1547
1548 - [Daniel Gustafsson brought this change]
1549
1550   cookies: Remove redundant expired check
1551   
1552   Expired cookies have already been purged at a later expiration time
1553   before this check, so remove the redundant check.
1554   
1555   closes #2962
1556
1557 - ntlm_wb: bail out if the response gets overly large
1558   
1559   Exit the realloc() loop if the response turns out ridiculously large to
1560   avoid worse problems.
1561   
1562   Reported-by: Harry Sintonen
1563   Closes #2959
1564
1565 - [Daniel Gustafsson brought this change]
1566
1567   url.c: fix comment typo and indentation
1568   
1569   Closes #2960
1570
1571 - urlapi: avoid derefencing a possible NULL pointer
1572   
1573   Coverity CID 1439134
1574
1575 - RELEASE-NOTES: synced
1576
1577 Marcel Raad (8 Sep 2018)
1578 - test324: fix after 3f3b26d6feb0667714902e836af608094235fca2
1579   
1580   The expected error code is now 60. 51 is dead.
1581
1582 Daniel Stenberg (8 Sep 2018)
1583 - curl_url_set.3: correct description
1584
1585 - curl_url-docs: fix AVAILABILITY as Added in curl 7.62.0
1586
1587 - URL-API
1588   
1589   See header file and man pages for API. All documented API details work
1590   and are tested in the 1560 test case.
1591   
1592   Closes #2842
1593
1594 - curl_easy_upkeep: removed 'conn' from the name
1595   
1596   ... including the associated option.
1597   
1598   Fixes #2951
1599   Closes #2952
1600
1601 - [Max Dymond brought this change]
1602
1603   upkeep: add a connection upkeep API: curl_easy_conn_upkeep()
1604   
1605   Add functionality so that protocols can do custom keepalive on their
1606   connections, when an external API function is called.
1607   
1608   Add docs for the new options in 7.62.0
1609   
1610   Closes #1641
1611
1612 - [Philipp Waehnert brought this change]
1613
1614   configure: add option to disable automatic OpenSSL config loading
1615   
1616   Sometimes it may be considered a security risk to load an external
1617   OpenSSL configuration automatically inside curl_global_init(). The
1618   configuration option --disable-ssl-auto-load-config disables this
1619   automatism. The Windows build scripts winbuild/Makefile.vs provide a
1620   corresponding option ENABLE_SSL_AUTO_LOAD_CONFIG accepting a boolean
1621   value.
1622   
1623   Setting neither of these options corresponds to the previous behavior
1624   loading the external OpenSSL configuration automatically.
1625   
1626   Fixes #2724
1627   Closes #2791
1628
1629 - doh: minor edits to please Coverity
1630   
1631   The gcc typecheck macros and coverity combined made it warn on the 2nd
1632   argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
1633   
1634   Coverity CID 1439115 and CID 1439114.
1635
1636 - schannel: avoid switch-cases that go to default anyway
1637   
1638   SEC_E_APPLICATION_PROTOCOL_MISMATCH isn't defined in some versions of
1639   mingw and would require an ifdef otherwise.
1640   
1641   Reported-by: Thomas Glanzmann
1642   Approved-by: Marc Hörsken
1643   Bug: https://curl.haxx.se/mail/lib-2018-09/0020.html
1644   Closes #2950
1645
1646 - [Nicklas Avén brought this change]
1647
1648   imap: change from "FETCH" to "UID FETCH"
1649   
1650   ... and add "MAILINDEX".
1651   
1652   As described in #2789, this is a suggested solution.  Changing UID=xx to
1653   actually get mail with UID xx and add "MAILINDEX" to get a mail with a
1654   special index in the mail box (old behavior).  So MAILINDEX=1 gives the
1655   first non deleted mail in the mail box.
1656   
1657   Fixes #2789
1658   Closes #2815
1659
1660 - CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size
1661   
1662   This is step 3 of #2888.
1663   
1664   Fixes #2888
1665   Closes #2896
1666
1667 - travis: add the DOH tests to the torture testing
1668
1669 - DOH: add test case 1650 and 2100
1670
1671 - curl: --doh-url added
1672
1673 - setopt: add CURLOPT_DOH_URL
1674   
1675   Closes #2668
1676
1677 - [Han Han brought this change]
1678
1679   ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
1680   
1681   Long live CURLE_PEER_FAILED_VERIFICATION
1682
1683 - [Han Han brought this change]
1684
1685   x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert
1686   
1687   CURLE_PEER_FAILED_VERIFICATION makes more sense because Curl_parseX509
1688   does not allocate memory internally as its first argument is a pointer
1689   to the certificate structure. The same error code is also returned by
1690   Curl_verifyhost when its call to Curl_parseX509 fails so the change
1691   makes error handling more consistent.
1692
1693 - [Han Han brought this change]
1694
1695   openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer
1696   
1697   Failure to extract the issuer name from the server certificate should
1698   return a more specific error code like on other TLS backends.
1699
1700 - [Han Han brought this change]
1701
1702   schannel: unified error code handling
1703   
1704   Closes #2901
1705
1706 - [Han Han brought this change]
1707
1708   darwinssl: more specific and unified error codes
1709   
1710   Closes #2901
1711
1712 - CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
1713   
1714   Disable the CURLOPT_DNS_USE_GLOBAL_CACHE option and mark it for
1715   deprecation and complete removal in six months.
1716   
1717   Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
1718   Closes #2942
1719
1720 - url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled
1721   
1722   Closes #2709
1723
1724 - multiplex: enable by default
1725   
1726   Starting 7.62.0, multiplexing is enabled by default in multi handles.
1727
1728 - [Jim Fuller brought this change]
1729
1730   tests: add unit tests for url.c
1731   
1732   Approved-by: Daniel Gustafsson
1733   Closes #2937
1734
1735 - test1452: mark as flaky
1736   
1737   makes it not run in the CI builds
1738   
1739   Closes #2941
1740
1741 - pipelining: deprecated
1742   
1743   Transparently. The related curl_multi_setopt() options all still returns
1744   OK when pipelining is selected.
1745   
1746   To re-enable the support, the single line change in lib/multi.c needs to
1747   be reverted.
1748   
1749   See docs/DEPRECATE.md
1750   
1751   Closes #2705
1752
1753 - RELEASE-NOTES: start working on 7.62.0
1754
1755 Version 7.61.1 (4 Sep 2018)
1756
1757 Daniel Stenberg (4 Sep 2018)
1758 - THANKS: 7.61.1 status
1759
1760 - RELEASE-NOTES: 7.61.1
1761
1762 - Curl_getoff_all_pipelines: ignore unused return values
1763   
1764   Since scan-build would warn on the dead "Dead store/Dead increment"
1765
1766 Viktor Szakats (4 Sep 2018)
1767 - sftp: fix indentation
1768
1769 Daniel Stenberg (4 Sep 2018)
1770 - [Przemysław Tomaszewski brought this change]
1771
1772   sftp: don't send post-qoute sequence when retrying a connection
1773   
1774   Fixes #2939
1775   Closes #2940
1776
1777 Kamil Dudka (3 Sep 2018)
1778 - url, vtls: make CURLOPT{,_PROXY}_TLS13_CIPHERS work
1779   
1780   This is a follow-up to PR #2607 and PR #2926.
1781   
1782   Closes #2936
1783
1784 Daniel Stenberg (3 Sep 2018)
1785 - [Jay Satiro brought this change]
1786
1787   tool_operate: Add http code 408 to transient list for --retry
1788   
1789   - Treat 408 request timeout as transient so that curl will retry the
1790     request if --retry was used.
1791   
1792   Closes #2925
1793
1794 - [Jay Satiro brought this change]
1795
1796   openssl: Fix setting TLS 1.3 cipher suites
1797   
1798   The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
1799   missing.
1800   
1801   Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
1802   Reported-by: Kamil Dudka
1803   
1804   Closes #2926
1805
1806 - Curl_ntlm_core_mk_nt_hash: return error on too long password
1807   
1808   ... since it would cause an integer overflow if longer than (max size_t
1809   / 2).
1810   
1811   This is CVE-2018-14618
1812   
1813   Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
1814   Closes #2756
1815   Reported-by: Zhaoyang Wu
1816
1817 - [Rikard Falkeborn brought this change]
1818
1819   http2: Use correct format identifier for stream_id
1820   
1821   Closes #2928
1822
1823 Marcel Raad (2 Sep 2018)
1824 - test1148: fix precheck output
1825   
1826   "precheck command error" is not very helpful.
1827
1828 Daniel Stenberg (1 Sep 2018)
1829 - all: s/int/size_t cleanup
1830   
1831   Assisted-by: Rikard Falkeborn
1832   
1833   Closes #2922
1834
1835 - ssh-libssh: use FALLTHROUGH to silence gcc8
1836
1837 Jay Satiro (31 Aug 2018)
1838 - tool_operate: Fix setting proxy TLS 1.3 ciphers
1839
1840 Daniel Stenberg (31 Aug 2018)
1841 - [Daniel Gustafsson brought this change]
1842
1843   cookies: support creation-time attribute for cookies
1844   
1845   According to RFC6265 section 5.4, cookies with equal path lengths
1846   SHOULD be sorted by creation-time (earlier first). This adds a
1847   creation-time record to the cookie struct in order to make cookie
1848   sorting more deterministic. The creation-time is defined as the
1849   order of the cookies in the jar, the first cookie read fro the
1850   jar being the oldest. The creation-time is thus not serialized
1851   into the jar. Also remove the strcmp() matching in the sorting as
1852   there is no lexicographic ordering in RFC6265. Existing tests are
1853   updated to match.
1854   
1855   Closes #2524
1856
1857 Marcel Raad (31 Aug 2018)
1858 - Don't use Windows path %PWD for SSH tests
1859   
1860   All these tests failed on Windows because something like
1861   sftp://%HOSTIP:%SSHPORT%PWD/
1862   expanded to
1863   sftp://127.0.0.1:1234c:/msys64/home/bla/curl
1864   and then curl complained about the port number ending with a letter.
1865   
1866   Use the original POSIX path instead of the Windows path created in
1867   checksystem to fix this.
1868   
1869   Closes https://github.com/curl/curl/pull/2920
1870
1871 Jay Satiro (29 Aug 2018)
1872 - CURLOPT_SSL_CTX_FUNCTION.3: clarify connection reuse warning
1873   
1874   Reported-by: Daniel Stenberg
1875   
1876   Closes https://github.com/curl/curl/issues/2916
1877
1878 Daniel Stenberg (28 Aug 2018)
1879 - THANKS-filter: dedup Daniel Jeliński
1880
1881 - RELEASE-NOTES: synced
1882
1883 - CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
1884
1885 - CURLOPT_SSL_CTX_FUNCTION.3: might cause unintended connection reuse [ci skip]
1886   
1887   Added a warning!
1888   
1889   Closes #2915
1890
1891 - curl: fix time-of-check, time-of-use race in dir creation
1892   
1893   Patch-by: Jay Satiro
1894   Detected by Coverity
1895   Fixes #2739
1896   Closes #2912
1897
1898 - cmdline-opts/page-footer: fix edit mistake
1899   
1900   There was a missing newline.
1901   
1902   follow-up to a7ba60bb7250
1903
1904 - docs: clarify NO_PROXY env variable functionality
1905   
1906   Reported-by: Kirill Marchuk
1907   Fixes #2773
1908   Closes #2911
1909
1910 Marcel Raad (24 Aug 2018)
1911 - lib1522: fix curl_easy_setopt argument type
1912   
1913   CURLOPT_POSTFIELDSIZE is a long option.
1914
1915 - curl_threads: silence bad-function-cast warning
1916   
1917   As uintptr_t and HANDLE are always the same size, this warning is
1918   harmless. Just silence it using an intermediate uintptr_t variable.
1919   
1920   Closes https://github.com/curl/curl/pull/2908
1921
1922 Daniel Stenberg (24 Aug 2018)
1923 - README: add appveyor build badge [ci skip]
1924   
1925   Closes #2913
1926
1927 - [Ihor Karpenko brought this change]
1928
1929   schannel: client certificate store opening fix
1930   
1931   1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG )
1932   while opening certificate store would be sufficient in this scenario and
1933   less-demanding in sense of required user credentials ( for example,
1934   IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore
1935   call without any of flags mentioned above ),
1936   
1937   2) as 'cert_store_name' is a DWORD, attempt to format its value like a
1938   string ( in "Failed to open cert store" error message ) will throw null
1939   pointer exception
1940   
1941   3) adding GetLastError(), in my opinion, will make error message more
1942   useful.
1943   
1944   Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
1945   
1946   Closes #2909
1947
1948 - [Leonardo Taccari brought this change]
1949
1950   gopher: Do not translate `?' to `%09'
1951   
1952   Since GOPHER support was added in curl `?' character was automatically
1953   translated to `%09' (`\t').
1954   
1955   However, this behaviour does not seems documented in RFC 4266 and for
1956   search selectors it is documented to directly use `%09' in the URL.
1957   Apart that several gopher servers in the current gopherspace have CGI
1958   support where `?' is used as part of the selector and translating it to
1959   `%09' often leads to surprising results.
1960   
1961   Closes #2910
1962
1963 Marcel Raad (23 Aug 2018)
1964 - cookie tests: treat files as text
1965   
1966   Fixes test failures because of wrong line endings on Windows.
1967
1968 Daniel Stenberg (23 Aug 2018)
1969 - libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation
1970   
1971   Multi-threaded applictions basically MUST set CURLOPT_NO_SIGNAL to 1L to
1972   avoid the risk of getting a SIGPIPE.
1973   
1974   Either way, a multi-threaded application that uses libcurl/openssl needs
1975   to have a signhandler for or ignore SIGPIPE on its own.
1976   
1977   Based on discussions in #2800
1978   Closes #2904
1979
1980 - RELEASE-NOTES: synced
1981
1982 Marcel Raad (22 Aug 2018)
1983 - Tests: fixes for Windows
1984   
1985   - test 1268 requires unix sockets
1986   - test 2072 must be disabled also for MSYS/MinGW
1987
1988 Daniel Stenberg (22 Aug 2018)
1989 - http2: abort the send_callback if not setup yet
1990   
1991   When Curl_http2_done() gets called before the http2 data is setup all
1992   the way, we cannot send anything and this should just return an error.
1993   
1994   Detected by OSS-Fuzz
1995   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
1996
1997 - http2: remove four unused nghttp2 callbacks
1998   
1999   Closes #2903
2000
2001 - x509asn1: use FALLTHROUGH
2002   
2003   ... as no other comments are accepted since 014ed7c22f51463
2004
2005 Marcel Raad (21 Aug 2018)
2006 - test1148: disable if decimal separator is not point
2007   
2008   Modifying the locale with environment variables doesn't work for native
2009   Windows applications. Just disable the test in this case if the decimal
2010   separator is something different than a point. Use a precheck with a
2011   small C program to achieve that.
2012   
2013   Closes https://github.com/curl/curl/pull/2786
2014
2015 - Enable more GCC warnings
2016   
2017   This enables the following additional warnings:
2018   -Wold-style-definition
2019   -Warray-bounds=2 instead of the default 1
2020   -Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
2021    respected for older versions
2022   -Wunused-const-variable, which enables level 2 instead of the default 1
2023   -Warray-bounds also in debug mode through -ftree-vrp
2024   -Wnull-dereference also in debug mode through
2025    -fdelete-null-pointer-checks
2026   
2027   Closes https://github.com/curl/curl/pull/2747
2028
2029 - curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
2030   
2031   This enables level 4 instead of the default level 3, which of the
2032   currently used comments only allows /* FALLTHROUGH */ to silence the
2033   warning.
2034   
2035   Closes https://github.com/curl/curl/pull/2747
2036
2037 - curl-compilers: enable -Wbad-function-cast on GCC
2038   
2039   This warning used to be enabled only for clang as it's a bit stricter
2040   on GCC. Silence the remaining occurrences and enable it on GCC too.
2041   
2042   Closes https://github.com/curl/curl/pull/2747
2043
2044 - configure: conditionally enable pedantic-errors
2045   
2046   Enable pedantic-errors for GCC >= 5 with --enable-werror. Before GCC 5,
2047   pedantic-errors was synonymous to -Werror=pedantic [0], which is still
2048   the case for clang [1]. With GCC 5, it became complementary [2].
2049   
2050   Also fix a resulting error in acinclude.m4 as main's return type was
2051   missing, which is illegal in C99.
2052   
2053   [0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
2054   [1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages
2055   [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
2056   
2057   Closes https://github.com/curl/curl/pull/2747
2058
2059 - Remove unused definitions
2060   
2061   Closes https://github.com/curl/curl/pull/2747
2062
2063 Daniel Stenberg (21 Aug 2018)
2064 - x509asn1: make several functions static
2065   
2066   and remove the private SIZE_T_MAX define and use the generic one.
2067   
2068   Closes #2902
2069
2070 - INTERNALS: require GnuTLS >= 2.11.3
2071   
2072   Since the public pinning support was brought in e644866caf4. GnuTLS
2073   2.11.3 was released in October 2010.
2074   
2075   Figured out in #2890
2076
2077 - http2: avoid set_stream_user_data() before stream is assigned
2078   
2079   ... before the stream is started, we have it set to -1.
2080   
2081   Fixes #2894
2082   Closes #2898
2083
2084 - SSLCERTS: improve the openssl command line
2085   
2086   ... for extracting certs from a live HTTPS server to make a cacerts.pem
2087   from them.
2088
2089 - docs/SECURITY-PROCESS: now we name the files after the CVE id
2090
2091 - RELEASE-NOTES: synced
2092
2093 - upload: change default UPLOAD_BUFSIZE to 64KB
2094   
2095   To make uploads significantly faster in some circumstances.
2096   
2097   Part 2 of #2888
2098   Closes #2892
2099
2100 - upload: allocate upload buffer on-demand
2101   
2102   Saves 16KB on the easy handle for operations that don't need that
2103   buffer.
2104   
2105   Part 1 of #2888
2106
2107 - [Laurent Bonnans brought this change]
2108
2109   vtls: reinstantiate engine on duplicated handles
2110   
2111   Handles created with curl_easy_duphandle do not use the SSL engine set
2112   up in the original handle. This fixes the issue by storing the engine
2113   name in the internal url state and setting the engine from its name
2114   inside curl_easy_duphandle.
2115   
2116   Reported-by: Anton Gerasimov
2117   Signed-of-by: Laurent Bonnans
2118   Fixes #2829
2119   Closes #2833
2120
2121 - http2: make sure to send after RST_STREAM
2122   
2123   If this is the last stream on this connection, the RST_STREAM might not
2124   get pushed to the wire otherwise.
2125   
2126   Fixes #2882
2127   Closes #2887
2128   Researched-by: Michael Kaufmann
2129
2130 - test1268: check the stderr output as "text"
2131   
2132   Follow-up to 099f37e9c57
2133   
2134   Pointed-out-by: Marcel Raad
2135
2136 - urldata: remove unused pipe_broke struct field
2137   
2138   This struct field is never set TRUE in any existing code path. This
2139   change removes the field completely.
2140   
2141   Closes #2871
2142
2143 - curl: warn the user if a given file name looks like an option
2144   
2145   ... simply because this is usually a sign of the user having omitted the
2146   file name and the next option is instead "eaten" by the parser as a file
2147   name.
2148   
2149   Add test1268 to verify
2150   
2151   Closes #2885
2152
2153 - http2: check nghttp2_session_set_stream_user_data return code
2154   
2155   Might help bug #2688 debugging
2156   
2157   Closes #2880
2158
2159 - travis: revert back to gcc-7 for coverage builds
2160   
2161   ... since the gcc-8 ones seem to fail frequently.
2162   
2163   Follow-up from b85207199544ca
2164   
2165   Closes #2886
2166
2167 - RELEASE-NOTES: synced
2168   
2169   ... and now listed in alphabetical order!
2170
2171 - [Adrien brought this change]
2172
2173   CMake: CMake config files are defining CURL_STATICLIB for static builds
2174   
2175   This change allows to use the CMake config files generated by Curl's
2176   CMake scripts for static builds of the library.
2177   The symbol CURL_STATIC lib must be defined to compile downstream,
2178   thus the config package is the perfect place to do so.
2179   
2180   Fixes #2817
2181   Closes #2823
2182   Reported-by: adnn on github
2183   Reviewed-by: Sergei Nikulov
2184
2185 - TODO: host name sections in config files
2186
2187 Kamil Dudka (14 Aug 2018)
2188 - ssh-libssh: fix infinite connect loop on invalid private key
2189   
2190   Added test 656 (based on test 604) to verify the fix.
2191   
2192   Bug: https://bugzilla.redhat.com/1595135
2193   
2194   Closes #2879
2195
2196 - ssh-libssh: reduce excessive verbose output about pubkey auth
2197   
2198   The verbose message "Authentication using SSH public key file" was
2199   printed each time the ssh_userauth_publickey_auto() was called, which
2200   meant each time a packet was transferred over network because the API
2201   operates in non-blocking mode.
2202   
2203   This patch makes sure that the verbose message is printed just once
2204   (when the authentication state is entered by the SSH state machine).
2205
2206 Daniel Stenberg (14 Aug 2018)
2207 - travis: disable h2 torture tests for "coverage"
2208   
2209   Since they started to fail almost 100% since a few days.
2210   
2211   Closes #2876
2212
2213 Marcel Raad (14 Aug 2018)
2214 - travis: update to GCC 8
2215   
2216   Closes https://github.com/curl/curl/pull/2869
2217
2218 Daniel Stenberg (13 Aug 2018)
2219 - http: fix for tiny "HTTP/0.9" response
2220   
2221   Deal with tiny "HTTP/0.9" (header-less) responses by checking the
2222   status-line early, even before a full "HTTP/" is received to allow
2223   detecting 0.9 properly.
2224   
2225   Test 1266 and 1267 added to verify.
2226   
2227   Fixes #2420
2228   Closes #2872
2229
2230 Kamil Dudka (13 Aug 2018)
2231 - docs: add disallow-username-in-url.d and haproxy-protocol.d on the list
2232   
2233   ... to make make the files appear in distribution tarballs
2234   
2235   Closes #2856
2236
2237 - .travis.yml: verify that man pages can be regenerated
2238   
2239   ... when curl is built from distribution tarball
2240   
2241   Closes #2856
2242
2243 Marcel Raad (11 Aug 2018)
2244 - Split non-portable part off test 1133
2245   
2246   Split off testing file names with double quotes into new test 1158.
2247   Disable it for MSYS using a precheck as it doesn't support file names
2248   with double quotes (but Cygwin does, for example).
2249   
2250   Fixes https://github.com/curl/curl/issues/2796
2251   Closes https://github.com/curl/curl/pull/2854
2252
2253 Jay Satiro (11 Aug 2018)
2254 - projects: Improve Windows perl detection in batch scripts
2255   
2256   - Determine if perl is in the user's PATH by running perl.exe.
2257   
2258   Prior to this change detection was done by checking the PATH for perl/
2259   but that did not work in all cases (eg git install includes perl but
2260   not in perl/ path).
2261   
2262   Bug: https://github.com/curl/curl/pull/2865
2263   Reported-by: Daniel Jeliński
2264
2265 - [Michael Kaufmann brought this change]
2266
2267   docs: Improve the manual pages of some callbacks
2268   
2269   - CURLOPT_HEADERFUNCTION: add newlines
2270   - CURLOPT_INTERLEAVEFUNCTION: fix the description of 'userdata'
2271   - CURLOPT_READDATA: mention crashes, same as in CURLOPT_WRITEDATA
2272   - CURLOPT_READFUNCTION: rename 'instream' to 'userdata' and explain
2273     how to set it
2274   
2275   Closes https://github.com/curl/curl/pull/2868
2276
2277 Marcel Raad (11 Aug 2018)
2278 - GCC: silence -Wcast-function-type uniformly
2279   
2280   Pointed-out-by: Rikard Falkeborn
2281   Closes https://github.com/curl/curl/pull/2860
2282
2283 - Silence GCC 8 cast-function-type warnings
2284   
2285   On Windows, casting between unrelated function types is fine and
2286   sometimes even necessary, so just use an intermediate cast to
2287   (void (*) (void)) to silence the warning as described in [0].
2288   
2289   [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
2290   
2291   Closes https://github.com/curl/curl/pull/2860
2292
2293 Daniel Stenberg (11 Aug 2018)
2294 - CURLINFO_SIZE_UPLOAD: fix missing counter update
2295   
2296   Adds test 1522 for verification.
2297   
2298   Reported-by: cjmsoregan
2299   Fixes #2847
2300   Closes #2864
2301
2302 - [Daniel Jelinski brought this change]
2303
2304   Documentation: fix CURLOPT_SSH_COMPRESSION copy/paste bug
2305   
2306   Closes #2867
2307
2308 - RELEASE-NOTES: synced
2309
2310 - openssl: fix potential NULL pointer deref in is_pkcs11_uri
2311   
2312   Follow-up to 298d2565e
2313   Coverity CID 1438387
2314
2315 Marcel Raad (10 Aug 2018)
2316 - travis: execute "set -eo pipefail" for coverage build
2317   
2318   Follow-up to 2de63ab179eb78630ee039ad94fb2a5423df522d and
2319   0b87c963252d3504552ee0c8cf4402bd65a80af5.
2320   
2321   Closes https://github.com/curl/curl/pull/2862
2322
2323 Daniel Stenberg (10 Aug 2018)
2324 - lib1502: fix memory leak in torture test
2325   
2326   Reported-by: Marcel Raad
2327   Fixes #2861
2328   Closes #2863
2329
2330 - docs: mention NULL is fine input to several functions
2331   
2332   Fixes #2837
2333   Closes #2858
2334   Reported-by: Markus Elfring
2335
2336 - [Bas van Schaik brought this change]
2337
2338   README.md: add LGTM.com code quality grade for C/C++
2339   
2340   Closes #2857
2341
2342 - [Rikard Falkeborn brought this change]
2343
2344   test1531: Add timeout
2345   
2346   Previously, the macro TEST_HANG_TIMEOUT was unused, but since there is
2347   looping going on, we might as well add timing instead of removing it.
2348   
2349   Closes #2853
2350
2351 - [Rikard Falkeborn brought this change]
2352
2353   test1540: Remove unused macro TEST_HANG_TIMEOUT
2354   
2355   The macro has never been used, and it there is not really any place
2356   where it would make sense to add timing checks.
2357   
2358   Closes #2852
2359
2360 - [Rikard Falkeborn brought this change]
2361
2362   asyn-thread: Remove unused macro
2363   
2364   The macro seems to never have been used.
2365   
2366   Closes #2852
2367
2368 - [Rikard Falkeborn brought this change]
2369
2370   http_proxy: Remove unused macro SELECT_TIMEOUT
2371   
2372   Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22.
2373   
2374   Closes #2852
2375
2376 - [Rikard Falkeborn brought this change]
2377
2378   formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT
2379   
2380   Its usage was removed in
2381   84ad1fd3047815f9c6e78728bb351b828eac10b1.
2382   
2383   Closes #2852
2384
2385 - [Rikard Falkeborn brought this change]
2386
2387   telnet: Remove unused macros TELOPTS and TELCMDS
2388   
2389   Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51.
2390   
2391   Closes #2852
2392
2393 - [Daniel Jelinski brought this change]
2394
2395   openssl: fix debug messages
2396   
2397   Fixes #2806
2398   Closes #2843
2399
2400 - configure: fix for -lpthread detection with OpenSSL and pkg-config
2401   
2402   ... by making sure it uses the -I provided by pkg-config!
2403   
2404   Reported-by: pszemus on github
2405   Fixes #2848
2406   Closes #2850
2407
2408 - RELEASE-NOTES: synced
2409
2410 - windows: follow up to the buffer-tuning 1ba1dba7
2411   
2412   Somehow I didn't include the amended version of the previous fix. This
2413   is the missing piece.
2414   
2415   Pointed-out-by: Viktor Szakats
2416
2417 - [Daniel Jelinski brought this change]
2418
2419   windows: implement send buffer tuning
2420   
2421   Significantly enhances upload performance on modern Windows versions.
2422   
2423   Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
2424   Closes #2762
2425   Fixes #2224
2426
2427 - [Anderson Toshiyuki Sasaki brought this change]
2428
2429   ssl: set engine implicitly when a PKCS#11 URI is provided
2430   
2431   This allows the use of PKCS#11 URI for certificates and keys without
2432   setting the corresponding type as "ENG" and the engine as "pkcs11"
2433   explicitly. If a PKCS#11 URI is provided for certificate, key,
2434   proxy_certificate or proxy_key, the corresponding type is set as "ENG"
2435   if not provided and the engine is set to "pkcs11" if not provided.
2436   
2437   Acked-by: Nikos Mavrogiannopoulos
2438   Closes #2333
2439
2440 - [Ruslan Baratov brought this change]
2441
2442   CMake: Respect BUILD_SHARED_LIBS
2443   
2444   Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
2445   custom option CURL_STATICLIB.
2446   
2447   Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
2448   
2449   Reviewed-by: Sergei Nikulov
2450   Closes #2755
2451
2452 - [John Butterfield brought this change]
2453
2454   cmake: bumped minimum version to 3.4
2455   
2456   Closes #2753
2457
2458 - [John Butterfield brought this change]
2459
2460   cmake: link curl to the OpenSSL targets instead of lib absolute paths
2461   
2462   Reviewed-by: Jakub Zakrzewski
2463   Reviewed-by: Sergei Nikulov
2464   Closes #2753
2465
2466 - travis: build darwinssl on macos 10.12
2467   
2468   ... as building on 10.13.x before 10.13.4 leads to link errors.
2469   
2470   Assisted-by: Nick Zitzmann
2471   Fixes #2835
2472   Closes #2845
2473
2474 - DEPRECATE: remove release date from 7.62.0
2475   
2476   Since it will slip and the version is the important part there, not the
2477   date.
2478
2479 - lib/Makefile: only do symbol hiding if told to
2480   
2481   This restores the ability to build a static lib with
2482   --disable-symbol-hiding to keep non-curl_ symbols.
2483   
2484   Researched-by: Dan Fandrich
2485   Reported-by: Ran Mozes
2486   Fixes #2830
2487   Closes #2831
2488
2489 Marcel Raad (2 Aug 2018)
2490 - hostip: fix unused variable warning
2491   
2492   addresses is only used in an infof call, which is a macro expanding to
2493   nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
2494
2495 Daniel Stenberg (2 Aug 2018)
2496 - test1307: disabled
2497   
2498   Turns out that since we're using the native fnmatch function now when
2499   available, and they simply disagree on a huge number of test patterns
2500   that make it hard to test this function like this...
2501   
2502   Fixes #2825
2503
2504 - smb: don't mark it done in smb_do
2505   
2506   Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its
2507   doing function too, which requires smb_do() to not mark itself as
2508   done...
2509   
2510   Closes #2822
2511
2512 - [Rikard Falkeborn brought this change]
2513
2514   general: fix printf specifiers
2515   
2516   Closes #2818
2517
2518 - RELEASE-NOTES: synced
2519
2520 - mailmap: Daniel Jelinski
2521
2522 - [Harry Sintonen brought this change]
2523
2524   HTTP: Don't attempt to needlessly decompress redirect body
2525   
2526   This change fixes a regression where redirect body would needlessly be
2527   decompressed even though it was to be ignored anyway. As it happens this
2528   causes secondary issues since there appears to be a bug in apache2 that
2529   it in certain conditions generates a corrupt zlib response. The
2530   regression was created by commit:
2531   dbcced8e32b50c068ac297106f0502ee200a1ebd
2532   
2533   Discovered-by: Harry Sintonen
2534   Closes #2798
2535
2536 - curl: use Content-Disposition before the "URL end" for -OJ
2537   
2538   Regression introduced in 7.61.0
2539   
2540   Reported-by: Thomas Klausner
2541   Fixes #2783
2542   Closes #2813
2543
2544 - [Daniel Jelinski brought this change]
2545
2546   retry: return error if rewind was necessary but didn't happen
2547   
2548   Fixes #2801
2549   Closes #2812
2550
2551 - http2: clear the drain counter in Curl_http2_done
2552   
2553   Reported-by: Andrei Virtosu
2554   Fixes #2800
2555   Closes #2809
2556
2557 - smb: fix memory leak on early failure
2558   
2559   ... by making sure connection related data (->share) is stored in the
2560   connection and not in the easy handle.
2561   
2562   Detected by OSS-fuzz
2563   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
2564   Fixes #2769
2565   Closes #2810
2566
2567 - travis: run a 'make checksrc' too
2568   
2569   ... to make sure the examples are all checked.
2570   
2571   Closes #2811
2572
2573 Jay Satiro (29 Jul 2018)
2574 - examples/ephiperfifo: checksrc compliance
2575
2576 - [Michael Kaufmann brought this change]
2577
2578   sws: handle EINTR when calling select()
2579   
2580   Closes https://github.com/curl/curl/pull/2808
2581
2582 Daniel Stenberg (29 Jul 2018)
2583 - test1157: follow-up to 35ecffb9
2584   
2585   Ignore the user-agent line.
2586   Pointed-out-by: Marcel Raad
2587
2588 Michael Kaufmann (29 Jul 2018)
2589 - tests/http_pipe.py: Use /usr/bin/env to find python
2590
2591 Daniel Stenberg (28 Jul 2018)
2592 - TODO: Support Authority Information Access certificate extension (AIA)
2593   
2594   Closes #2793
2595
2596 - conn_free: updated comment to clarify
2597   
2598   Let's call it disassociate instead of disconnect since the latter term
2599   is used so much for (TCP) connections already.
2600
2601 - test1157: test -H from empty file
2602   
2603   Verifies bugfix #2797
2604
2605 - [Tobias Blomberg brought this change]
2606
2607   curl: Fix segfault when -H @headerfile is empty
2608   
2609   The curl binary would crash if the -H command line option was given a
2610   filename to read using the @filename syntax but that file was empty.
2611   
2612   Closes #2797
2613
2614 - mime: check Curl_rand_hex's return code
2615   
2616   Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
2617   Reported-by: Jeffrey Walton
2618   Closes #2795
2619
2620 - [Josh Bialkowski brought this change]
2621
2622   docs/examples: add hiperfifo example using linux epoll/timerfd
2623   
2624   Closes #2804
2625
2626 - [Darío Hereñú brought this change]
2627
2628   docs/INSTALL.md: minor formatting fixes
2629   
2630   Closes #2794
2631
2632 - [Christopher Head brought this change]
2633
2634   docs/CURLOPT_URL: fix indentation
2635   
2636   The statement, “The application does not have to keep the string around
2637   after setting this option,” appears to be indented under the RTMP
2638   paragraph. It actually applies to all protocols, not just RTMP.
2639   Eliminate the extra indentation.
2640   
2641   Closes #2788
2642
2643 - [Christopher Head brought this change]
2644
2645   docs/CURLOPT_WRITEFUNCTION: size is always 1
2646   
2647   For compatibility with `fwrite`, the `CURLOPT_WRITEFUNCTION` callback is
2648   passed two `size_t` parameters which, when multiplied, designate the
2649   number of bytes of data passed in. In practice, CURL always sets the
2650   first parameter (`size`) to 1.
2651   
2652   This practice is also enshrined in documentation and cannot be changed
2653   in future. The documentation states that the default callback is
2654   `fwrite`, which means `fwrite` must be a suitable function for this
2655   purpose. However, the documentation also states that the callback must
2656   return the number of *bytes* it successfully handled, whereas ISO C
2657   `fwrite` returns the number of items (each of size `size`) which it
2658   wrote. The only way these numbers can be equal is if `size` is 1.
2659   
2660   Since `size` is 1 and can never be changed in future anyway, document
2661   that fact explicitly and let users rely on it.
2662   
2663   Closes #2787
2664
2665 - [Carie Pointer brought this change]
2666
2667   wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random
2668   
2669   RNG structure must be freed by call to FreeRng after its use in
2670   Curl_cyassl_random. This call fixes Valgrind failures when running the
2671   test suite with wolfSSL.
2672   
2673   Closes #2784
2674
2675 - [Even Rouault brought this change]
2676
2677   reuse_conn(): free old_conn->options
2678   
2679   This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with
2680   connection reuse.
2681   
2682   I found this with oss-fuzz on GDAL and curl master:
2683   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582
2684   I couldn't reproduce with the oss-fuzz original test case, but looking
2685   at curl source code pointed to this well reproducable leak.
2686   
2687   Closes #2790
2688
2689 Marcel Raad (25 Jul 2018)
2690 - [Daniel Jelinski brought this change]
2691
2692   system_win32: fix version checking
2693   
2694   In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false
2695   when run on windows 10.0. This patch addresses that error.
2696   
2697   Closes https://github.com/curl/curl/pull/2792
2698
2699 Daniel Stenberg (24 Jul 2018)
2700 - [Johannes Schindelin brought this change]
2701
2702   auth: pick Bearer authentication whenever a token is available
2703   
2704   So far, the code tries to pick an authentication method only if
2705   user/password credentials are available, which is not the case for
2706   Bearer authentictation...
2707   
2708   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2709   Closes #2754
2710
2711 - [Johannes Schindelin brought this change]
2712
2713   auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer token
2714   
2715   The Bearer authentication was added to cURL 7.61.0, but there is a
2716   problem: if CURLAUTH_ANY is selected, and the server supports multiple
2717   authentication methods including the Bearer method, we strongly prefer
2718   that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer
2719   authentication fails, we will never even try to attempt any other
2720   method.
2721   
2722   This is particularly unfortunate when we already know that we do not
2723   have any Bearer token to work with.
2724   
2725   Such a scenario happens e.g. when using Git to push to Visual Studio
2726   Team Services (which supports Basic and Bearer authentication among
2727   other methods) and specifying the Personal Access Token directly in the
2728   URL (this aproach is frequently taken by automated builds).
2729   
2730   Let's make sure that we have a Bearer token to work with before we
2731   select the Bearer authentication among the available authentication
2732   methods.
2733   
2734   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2735   Closes #2754
2736
2737 Marcel Raad (22 Jul 2018)
2738 - test320: treat curl320.out file as binary
2739   
2740   Otherwise, LF line endings are converted to CRLF on Windows,
2741   but no conversion is done for the reply, so the test case fails.
2742   
2743   Closes https://github.com/curl/curl/pull/2776
2744
2745 Daniel Stenberg (22 Jul 2018)
2746 - vtls: set conn->data when closing TLS
2747   
2748   Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
2749   layer for a connection still needs a Curl_easy handle for the session_id
2750   cache etc.
2751   
2752   Fixes #2764
2753   Closes #2771
2754
2755 Marcel Raad (21 Jul 2018)
2756 - tests: fixes for Windows line endlings
2757   
2758   Set mode="text" when line endings depend on the system representation.
2759   
2760   Closes https://github.com/curl/curl/pull/2772
2761
2762 - test214: disable MSYS2's POSIX path conversion for URL
2763   
2764   By default, the MSYS2 bash converts all backslashes to forward slashes
2765   in URLs. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
2766   
2767   Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
2768
2769 Daniel Stenberg (20 Jul 2018)
2770 - http2: several cleanups
2771   
2772   - separate easy handle from connections better
2773   - added asserts on a number of places
2774   - added sanity check of pipelines for debug builds
2775   
2776   Closes #2751
2777
2778 - smb_getsock: always wait for write socket too
2779   
2780   ... the protocol is doing read/write a lot, so it needs to write often
2781   even when downloading. A more proper fix could check for eactly when it
2782   wants to write and only ask for it then.
2783   
2784   Without this fix, an SMB download could easily get stuck when the event-driven
2785   API was used.
2786   
2787   Closes #2768
2788
2789 Marcel Raad (20 Jul 2018)
2790 - test1143: disable MSYS2's POSIX path conversion
2791   
2792   By default, the MSYS2 bash interprets http:/%HOSTIP:%HTTPPORT/want/1143
2793   as a POSIX file list and converts it to a Windows file list.
2794   Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
2795   
2796   Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
2797   Closes https://github.com/curl/curl/pull/2765
2798
2799 Daniel Stenberg (18 Jul 2018)
2800 - RELEASE-NOTES: sync
2801   
2802   ... and work toward 7.61.1
2803
2804 - [Ruslan Baratov brought this change]
2805
2806   CMake: Update scripts to use consistent style
2807   
2808   Closes #2727
2809   Reviewed-by: Sergei Nikulov
2810
2811 - header output: switch off all styles, not just unbold
2812   
2813   ... the "unbold" sequence doesn't work on the mac Terminal.
2814   
2815   Reported-by: Zero King
2816   Fixes #2736
2817   Closes #2738
2818
2819 Nick Zitzmann (14 Jul 2018)
2820 - [Rodger Combs brought this change]
2821
2822   darwinssl: add support for ALPN negotiation
2823
2824 Marcel Raad (14 Jul 2018)
2825 - test1422: add required file feature
2826   
2827   curl configured with --enable-debug --disable-file currently complains
2828   on test1422:
2829   Info: Protocol "file" not supported or disabled in libcurl
2830   
2831   Make test1422 dependend on enabled FILE protocol to fix this.
2832   
2833   Fixes https://github.com/curl/curl/issues/2741
2834   Closes https://github.com/curl/curl/pull/2742
2835
2836 Patrick Monnerat (12 Jul 2018)
2837 - content_encoding: accept up to 4 unknown trailer bytes after raw deflate data
2838   
2839   Some servers issue raw deflate data that may be followed by an undocumented
2840   trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
2841   before considering the data is in error.
2842   
2843   Reported-by: clbr on github
2844   Fixes #2719
2845
2846 Daniel Stenberg (12 Jul 2018)
2847 - smb: fix memory-leak in URL parse error path
2848   
2849   Detected by OSS-Fuzz
2850   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
2851   Closes #2740
2852
2853 Marcel Raad (12 Jul 2018)
2854 - schannel: enable CALG_TLS1PRF for w32api >= 5.1
2855   
2856   The definition of CALG_TLS1PRF has been fixed in the 5.1 branch:
2857   https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/commits/73aedcc0f2e6ba370de0d86ab878ad76a0dda7b5
2858
2859 Daniel Stenberg (12 Jul 2018)
2860 - docs/SECURITY-PROCESS: mention bounty, drop pre-notify
2861   
2862   + The hackerone bounty and its process
2863   
2864   - We don't and can't handle pre-notification
2865
2866 - multi: always do the COMPLETED procedure/state
2867   
2868   It was previously erroneously skipped in some situations.
2869   
2870   libtest/libntlmconnect.c wrongly depended on wrong behavior (that it
2871   would get a zero timeout) when no handles are "running" in a multi
2872   handle. That behavior is no longer present with this fix. Now libcurl
2873   will always return a -1 timeout when all handles are completed.
2874   
2875   Closes #2733
2876
2877 - Curl_getoff_all_pipelines: improved for multiplexed
2878   
2879   On multiplexed connections, transfers can be removed from anywhere not
2880   just at the head as for pipelines.
2881
2882 - ares: check for NULL in completed-callback
2883
2884 - conn: remove the boolean 'inuse' field
2885   
2886   ... as the usage needs to be counted.
2887
2888 - [Paul Howarth brought this change]
2889
2890   openssl: assume engine support in 1.0.0 or later
2891   
2892   Commit 38203f1585da changed engine detection to be version-based,
2893   with a baseline of openssl 1.0.1. This does in fact break builds
2894   with openssl 1.0.0, which has engine support - the configure script
2895   detects that ENGINE_cleanup() is available - but <openssl/engine.h>
2896   doesn't get included to declare it.
2897   
2898   According to upstream documentation, engine support was added to
2899   mainstream openssl builds as of version 0.9.7:
2900   https://github.com/openssl/openssl/blob/master/README.ENGINE
2901   
2902   This commit drops the version test down to 1.0.0 as version 1.0.0d
2903   is the oldest version I have to test with.
2904   
2905   Closes #2732
2906
2907 Marcel Raad (11 Jul 2018)
2908 - schannel: fix MinGW compile break
2909   
2910   Original MinGW's w32api has a sytax error in its definition of
2911   CALG_TLS1PRF [0]. Don't use original MinGW w32api's CALG_TLS1PRF
2912   until this bug [1] is fixed.
2913   
2914   [0] https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
2915   [1] https://osdn.net/projects/mingw/ticket/38391
2916   
2917   Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
2918   Closes https://github.com/curl/curl/pull/2728
2919
2920 Daniel Stenberg (11 Jul 2018)
2921 - examples/crawler.c: move #ifdef to column 0
2922   
2923   Apparently the C => HTML converter on the web site doesn't quite like it
2924   otherwise.
2925   
2926   Reported-by: Jeroen Ooms
2927
2928 Version 7.61.0 (11 Jul 2018)
2929
2930 Daniel Stenberg (11 Jul 2018)
2931 - release: 7.61.0
2932
2933 - TODO: Configurable loading of OpenSSL configuration file
2934   
2935   Closes #2724
2936
2937 - post303.d: clarify that this is an RFC violation
2938   
2939   ... and not the other way around, which this previously said.
2940   
2941   Reported-by: Vasiliy Faronov
2942   Fixes #2723
2943   Closes #2726
2944
2945 - [Ruslan Baratov brought this change]
2946
2947   CMake: remove redundant and old end-of-block syntax
2948   
2949   Reviewed-by: Jakub Zakrzewski
2950   Closes #2715
2951
2952 Jay Satiro (9 Jul 2018)
2953 - lib/curl_setup.h: remove unicode character
2954   
2955   Follow-up to 82ce416.
2956   
2957   Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
2958
2959 Daniel Stenberg (9 Jul 2018)
2960 - lib/curl_setup.h: remove unicode bom from 8272ec50f02
2961
2962 Marcel Raad (9 Jul 2018)
2963 - schannel: fix -Wsign-compare warning
2964   
2965   MinGW warns:
2966   /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
2967   conditional expression [-Wsign-compare]
2968   
2969   Fix this by casting the ptrdiff_t to size_t as we know it's positive.
2970   
2971   Closes https://github.com/curl/curl/pull/2721
2972
2973 - schannel: workaround for wrong function signature in w32api
2974   
2975   Original MinGW's w32api has CryptHashData's second parameter as BYTE *
2976   instead of const BYTE *.
2977   
2978   Closes https://github.com/curl/curl/pull/2721
2979
2980 - schannel: make more cipher options conditional
2981   
2982   They are not defined in the original MinGW's <wincrypt.h>.
2983   
2984   Closes https://github.com/curl/curl/pull/2721
2985
2986 - curl_setup: include <winerror.h> before <windows.h>
2987   
2988   Otherwise, only part of it gets pulled in through <windows.h> on
2989   original MinGW.
2990   
2991   Fixes https://github.com/curl/curl/issues/2361
2992   Closes https://github.com/curl/curl/pull/2721
2993
2994 - examples: fix -Wformat warnings
2995   
2996   When size_t is not a typedef for unsigned long (as usually the case on
2997   Windows), GCC emits -Wformat warnings when using lu and lx format
2998   specifiers with size_t. Silence them with explicit casts to
2999   unsigned long.
3000   
3001   Closes https://github.com/curl/curl/pull/2721
3002
3003 Daniel Stenberg (9 Jul 2018)
3004 - smtp: use the upload buffer size for scratch buffer malloc
3005   
3006   ... not the read buffer size, as that can be set smaller and thus cause
3007   a buffer overflow! CVE-2018-0500
3008   
3009   Reported-by: Peter Wu
3010   Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
3011
3012 - [Dave Reisner brought this change]
3013
3014   scripts: include _curl as part of CLEANFILES
3015   
3016   Closes #2718
3017
3018 - [Nick Zitzmann brought this change]
3019
3020   darwinssl: allow High Sierra users to build the code using GCC
3021   
3022   ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
3023   enumeration constants.
3024   
3025   Fixes #2656
3026   Closes #2703
3027
3028 - [Ruslan Baratov brought this change]
3029
3030   CMake: Remove unused 'output_var' from 'collect_true'
3031   
3032   Variable 'output_var' is not used and can be removed.
3033   Function 'collect_true' renamed to 'count_true'.
3034
3035 - [Ruslan Baratov brought this change]
3036
3037   CMake: Remove unused functions
3038   
3039   Closes #2711
3040
3041 - KNOWN_BUGS: Stick to same family over SOCKS proxy
3042
3043 - libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
3044   
3045   ... because otherwise not everything get closed down correctly.
3046   
3047   Fixes #2708
3048   Closes #2712
3049
3050 - libssh: include line number in state change debug messages
3051   
3052   Closes #2713
3053
3054 - KNOWN_BUGS: Borland support is dropped, AIX problem is too old
3055
3056 - [Jeroen Ooms brought this change]
3057
3058   example/crawler.c: simple crawler based on libxml2
3059   
3060   Closes #2706
3061
3062 - RELEASE-NOTES: synced
3063
3064 - DEPRECATE: include year when specifying date
3065
3066 - DEPRECATE: linkified
3067
3068 - DEPRECATE: mention the PR that disabled axTLS
3069
3070 - docs/DEPRECATE.md: spelling and minor formatting
3071
3072 - DEPRECATE: new doc describing planned item removals
3073   
3074   Closes #2704
3075
3076 - [Gisle Vanem brought this change]
3077
3078   telnet: fix clang warnings
3079   
3080   telnet.c(1401,28): warning: cast from function call of type 'int' to
3081   non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
3082   
3083   Fixes #2696
3084   Closes #2700
3085
3086 - docs: fix missed option name markups
3087
3088 - [Gaurav Malhotra brought this change]
3089
3090   openssl: Remove some dead code
3091   
3092   Closes #2698
3093
3094 - openssl: make the requested TLS version the *minimum* wanted
3095   
3096   The code treated the set version as the *exact* version to require in
3097   the TLS handshake, which is not what other TLS backends do and probably
3098   not what most people expect either.
3099   
3100   Reported-by: Andreas Olsson
3101   Assisted-by: Gaurav Malhotra
3102   Fixes #2691
3103   Closes #2694
3104
3105 - RELEASE-NOTES: synced
3106
3107 - openssl: allow TLS 1.3 by default
3108   
3109   Reported-by: Andreas Olsson
3110   Fixes #2692
3111   Closes #2693
3112
3113 - [Adrian Peniak brought this change]
3114
3115   CURLINFO_TLS_SSL_PTR.3: improve the example
3116   
3117   The previous example was a little bit confusing, because SSL* structure
3118   (or other "in use" SSL connection pointer) is not accessible after the
3119   transfer is completed, therefore working with the raw TLS library
3120   specific pointer needs to be done during transfer.
3121   
3122   Closes #2690
3123
3124 - travis: add a build using the synchronous name resolver
3125   
3126   ... since default uses the threaded one and we test the c-ares build
3127   already.
3128   
3129   Closes #2689
3130
3131 - configure: remove CURL_CHECK_NI_WITHSCOPEID too
3132   
3133   Since it isn't used either and requires the getnameinfo check
3134   
3135   Follow-up to 0aeca41702d2
3136
3137 - getnameinfo: not used
3138   
3139   Closes #2687
3140
3141 - easy_perform: use *multi_timeout() to get wait times
3142   
3143   ... and trim the threaded Curl_resolver_getsock() to return zero
3144   millisecond wait times during the first three milliseconds so that
3145   localhost or names in the OS resolver cache gets detected and used
3146   faster.
3147   
3148   Closes #2685
3149
3150 Max Dymond (27 Jun 2018)
3151 - configure: Add dependent libraries after crypto
3152   
3153   The linker is pretty dumb and processes things left to right, keeping a
3154   tally of symbols it hasn't resolved yet. So, we need -ldl to appear
3155   after -lcrypto otherwise the linker won't find the dl functions.
3156   
3157   Closes #2684
3158
3159 Daniel Stenberg (27 Jun 2018)
3160 - GOVERNANCE: linkify, changed some titles
3161
3162 - GOVERNANCE: add maintainer details/duties
3163
3164 - url: check Curl_conncache_add_conn return code
3165   
3166   ... it was previously unchecked in two places and thus errors could
3167   remain undetected and cause trouble.
3168   
3169   Closes #2681
3170
3171 - include/README: remove "hacking" advice, not the right place
3172
3173 - RELEASE-NOTES: synced
3174
3175 - CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
3176   
3177   Follow-up to b6a16afa0aa5
3178
3179 - netrc: use a larger buffer
3180   
3181   ... to work with longer passwords etc. Grow it from a 256 to a 4096
3182   bytes buffer.
3183   
3184   Reported-by: Dario Nieuwenhuis
3185   Fixes #2676
3186   Closes #2680
3187
3188 - [Patrick Schlangen brought this change]
3189
3190   CURLOPT_SSL_VERIFYPEER.3: Add performance note
3191   
3192   Closes #2673
3193
3194 - [Javier Blazquez brought this change]
3195
3196   multi: fix crash due to dangling entry in connect-pending list
3197   
3198   Fixes #2677
3199   Closes #2679
3200
3201 - ConnectionExists: make sure conn->data is set when "taking" a connection
3202   
3203   Follow-up to 2c15693.
3204   
3205   Bug #2674
3206   Closes #2675
3207
3208 - [Kevin R. Bulgrien brought this change]
3209
3210   system.h: fix for gcc on 32 bit OpenServer
3211   
3212   Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
3213
3214 - [Raphael Gozzo brought this change]
3215
3216   cmake: allow multiple SSL backends
3217   
3218   This will make possible to select the SSL backend (using
3219   curl_global_sslset()) even when the libcurl is built using CMake
3220   
3221   Closes #2665
3222
3223 - url: fix dangling conn->data pointer
3224   
3225   By masking sure to use the *current* easy handle with extracted
3226   connections from the cache, and make sure to NULLify the ->data pointer
3227   when the connection is put into the cache to make this mistake easier to
3228   detect in the future.
3229   
3230   Reported-by: Will Dietz
3231   Fixes #2669
3232   Closes #2672
3233
3234 - CURLOPT_INTERFACE.3: interface names not supported on Windows
3235
3236 - travis: run more tests for coverage check
3237   
3238   ... run a few more tortured based and run all tests event-based.
3239   
3240   Closes #2664
3241
3242 - multi: fix memory leak when stopped during name resolve
3243   
3244   When the application just started the transfer and then stops it while
3245   the name resolve in the background thread hasn't completed, we need to
3246   wait for the resolve to complete and then cleanup data accordingly.
3247   
3248   Enabled test 1553 again and added test 1590 to also check when the host
3249   name resolves successfully.
3250   
3251   Detected by OSS-fuzz.
3252   Closes #1968
3253
3254 Viktor Szakats (15 Jun 2018)
3255 - maketgz: delete .bak files, fix indentation
3256   
3257   Ref: https://github.com/curl/curl/pull/2660
3258   
3259   Closes https://github.com/curl/curl/pull/2662
3260
3261 Daniel Stenberg (15 Jun 2018)
3262 - runtests.pl: remove debug leftover from bb9a340c73f3
3263
3264 - curl-confopts.m4: fix typo from ed224f23d5beb
3265   
3266   Fixes my local configure to detect a custom installed c-ares without
3267   pkgconfig.
3268
3269 - docs/RELEASE-PROCEDURE.md: renamed to use .md extension
3270   
3271   Closes #2663
3272
3273 - RELEASE-PROCEDURE: gpg sign the tags
3274
3275 - RELEASE-NOTES: synced
3276
3277 - CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
3278
3279 - [Mamta Upadhyay brought this change]
3280
3281   maketgz: fix sed issues on OSX
3282   
3283   maketgz creates release tarballs and removes the -DEV string in curl
3284   version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
3285   is run. maketgz works fine on linux but fails on OSX. Problem is with
3286   the sed commands that use option -i without an extension. Maketgz
3287   expects GNU sed instead of BSD and this simply won't work on OSX. Adding
3288   a backup extension .bak after -i fixes this issue
3289   
3290   Running the script as if on OSX gives this error:
3291   
3292   sed: -e: No such file or directory
3293   
3294   Adding a .bak extension resolves it
3295   
3296   Closes #2660
3297
3298 - configure: enhance ability to detect/build with static openssl
3299   
3300   Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
3301   building with static libs without pkg-config.
3302   
3303   Reported-by: Marcel Raad
3304   Fixes #2199
3305   Closes #2659
3306
3307 - configure: use pkg-config for c-ares detection
3308   
3309   First check if there's c-ares information given as pkg-config info and use
3310   that as first preference.
3311   
3312   Reported-by: pszemus on github
3313   Fixes #2203
3314   Closes #2658
3315
3316 - GOVERNANCE.md: explains how this project is run
3317   
3318   Closes #2657
3319
3320 - KNOWN_BUGS: NTLM doen't support password with § character
3321   
3322   Closes #2120
3323
3324 - KNOWN_BUGS: slow connect to localhost on Windows
3325   
3326   Closes #2281
3327
3328 - [Matteo Bignotti brought this change]
3329
3330   mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
3331   
3332   certdata.txt should be deleted also when the process is interrupted by
3333   "same certificate downloaded, exiting"
3334   
3335   The certdata.txt is currently kept on disk even if you give the -u
3336   option
3337   
3338   Closes #2655
3339
3340 - progress: remove a set of unused defines
3341   
3342   Reported-by: Peter Wu
3343   Closes #2654
3344
3345 - TODO: "Option to refuse usernames in URLs" done
3346   
3347   Implemented by Björn in 946ce5b61f
3348
3349 - [Lyman Epp brought this change]
3350
3351   Curl_init_do: handle NULL connection pointer passed in
3352   
3353   Closes #2653
3354
3355 - runtests: support variables in <strippart>
3356   
3357   ... and make use of that to make 1455 work better without using a fixed
3358   local port number.
3359   
3360   Fixes #2649
3361   Closes #2650
3362
3363 - Curl_debug: remove dead printhost code
3364   
3365   The struct field is never set (since 5e0d9aea3) so remove the use of it
3366   and remove the connectdata pointer from the prototype.
3367   
3368   Reported-by: Tejas
3369   Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
3370   Closes #2647
3371
3372 Viktor Szakats (12 Jun 2018)
3373 - schannel: avoid incompatible pointer warning
3374   
3375   with clang-6.0:
3376   ```
3377   vtls/schannel_verify.c: In function 'add_certs_to_store':
3378   vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
3379                                 &cert_context)) {
3380                                 ^
3381   In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
3382                    from /usr/share/mingw-w64/include/schnlsp.h:9,
3383                    from vtls/schannel.h:29,
3384                    from vtls/schannel_verify.c:40:
3385   /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
3386      WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
3387                             ^~~~~~~~~~~~~~~~
3388   ```
3389   Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
3390   
3391   Closes https://github.com/curl/curl/pull/2648
3392
3393 Daniel Stenberg (12 Jun 2018)
3394 - [Robert Prag brought this change]
3395
3396   schannel: support selecting ciphers
3397   
3398   Given the contstraints of SChannel, I'm exposing these as the algorithms
3399   themselves instead; while replicating the ciphersuite as specified by
3400   OpenSSL would have been preferable, I found no way in the SChannel API
3401   to do so.
3402   
3403   To use this from the commandline, you need to pass the names of contants
3404   defining the desired algorithms. For example, curl --ciphers
3405   "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
3406   https://github.com The specific names come from wincrypt.h
3407   
3408   Closes #2630
3409
3410 - [Bernhard M. Wiedemann brought this change]
3411
3412   test 46: make test pass after 2025
3413   
3414   shifting the expiry date to 2037 for now
3415   to be before the possibly problematic year 2038
3416   
3417   similar in spirit to commit e6293cf8764e9eecb
3418   
3419   Closes #2646
3420
3421 - [Marian Klymov brought this change]
3422
3423   cppcheck: fix warnings
3424   
3425   - Get rid of variable that was generating false positive warning
3426   (unitialized)
3427   
3428   - Fix issues in tests
3429   
3430   - Reduce scope of several variables all over
3431   
3432   etc
3433   
3434   Closes #2631
3435
3436 - openssl: assume engine support in 1.0.1 or later
3437   
3438   Previously it was checked for in configure/cmake, but that would then
3439   leave other build systems built without engine support.
3440   
3441   While engine support probably existed prior to 1.0.1, I decided to play
3442   safe. If someone experience a problem with this, we can widen the
3443   version check.
3444   
3445   Fixes #2641
3446   Closes #2644
3447
3448 - RELEASE-NOTES: synced
3449
3450 - RELEASE-PROCEDURE: update the release calendar for 2019
3451
3452 - [Gisle Vanem brought this change]
3453
3454   boringssl + schannel: undef X509_NAME in lib/schannel.h
3455   
3456   Fixes the build problem when both boringssl and schannel are enabled.
3457   
3458   Fixes #2634
3459   Closes #2643
3460
3461 - [Vladimir Kotal brought this change]
3462
3463   mk-ca-bundle.pl: leave certificate name untouched in decode()
3464   
3465   Closes #2640
3466
3467 - [Rikard Falkeborn brought this change]
3468
3469   tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
3470   
3471   This removes the generated lib1521.c when running make clean.
3472   
3473   Closes #2633
3474
3475 - [Rikard Falkeborn brought this change]
3476
3477   tests/libtest: Add lib1521 to nodist_SOURCES
3478   
3479   Since 467da3af0, lib1521.c is generated instead of checked in. According
3480   to the commit message, the intention was to remove it from the tarball
3481   as well. However, it is still present when running make dist. To remove
3482   it, add it to nodist_lib1521_SOURCES. This also means there is no need
3483   for the manually added dist-rule in the Makefile.
3484   
3485   Also update CMakelists.txt to handle the fact that we now may have
3486   nodist_SOURCES.
3487
3488 - [Stephan Mühlstrasser brought this change]
3489
3490   system.h: add support for IBM xlc C compiler
3491   
3492   Added a section to system.h guarded with __xlc__ for the IBM xml C
3493   compiler. Before this change the section titled 'generic "safe guess" on
3494   old 32 bit style' was used, which resulted in a wrong definition of
3495   CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
3496   was wrong.
3497   
3498   Compilation warnings fixed with this change:
3499   
3500     CC       libcurl_la-ftp.lo
3501   "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3502   "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3503   "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3504   "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3505   "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3506     CC       libcurl_la-connect.lo
3507   "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3508   "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3509   "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3510   "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3511     CC       libcurl_la-tftp.lo
3512   "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
3513   
3514   Closes #2637
3515
3516 - cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
3517
3518 Viktor Szakats (3 Jun 2018)
3519 - spelling fixes
3520   
3521   Detected using the `codespell` tool (version 1.13.0).
3522   
3523   Also secure and fix an URL.
3524
3525 Daniel Stenberg (2 Jun 2018)
3526 - axtls: follow-up spell fix of comment
3527
3528 - axTLS: not considered fit for use
3529   
3530   URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
3531   
3532   This is step one. It adds #error statements that require source edits to
3533   make curl build again if asked to use axTLS. At a later stage we might
3534   remove the axTLS specific code completely.
3535   
3536   Closes #2628
3537
3538 - build: remove the Borland specific makefiles
3539   
3540   According to the user survey 2018, not even one out of 670 users use
3541   them. Nobody on the mailing list spoke up for them either.
3542   
3543   Closes #2629
3544
3545 - curl_addrinfo: use same #ifdef conditions in source as header
3546   
3547   ... for curl_dofreeaddrinfo
3548
3549 - multi: remove a DEBUGF()
3550   
3551   ... it might call infof() with a NULL first argument that isn't harmful
3552   but makes it not do anything. The infof() line is not very useful
3553   anymore, it has served it purpose. Good riddance!
3554   
3555   Fixes #2627
3556
3557 - [Alibek.Jorajev brought this change]
3558
3559   CURLOPT_RESOLVE: always purge old entry first
3560   
3561   If there's an existing entry using the selected name.
3562   
3563   Closes #2622
3564
3565 - fnmatch: use the system one if available
3566   
3567   If configure detects fnmatch to be available, use that instead of our
3568   custom one for FTP wildcard pattern matching. For standard compliance,
3569   to reduce our footprint and to use already well tested and well
3570   exercised code.
3571   
3572   A POSIX fnmatch behaves slightly different than the internal function
3573   for a few test patterns currently and the macOS one yet slightly
3574   different. Test case 1307 is adjusted for these differences.
3575   
3576   Closes #2626
3577
3578 Patrick Monnerat (31 May 2018)
3579 - os400: add new option in ILE/RPG binding
3580   
3581   Follow-up to commit 946ce5b
3582
3583 Daniel Stenberg (31 May 2018)
3584 - tests/libtest/.gitignore: follow-up fix to ignore lib5* too
3585
3586 - KNOWN_BUGS: CURL_GLOBAL_SSL
3587   
3588   Closes #2276
3589
3590 - [Bernhard Walle brought this change]
3591
3592   configure: check for declaration of getpwuid_r
3593   
3594   On our x86 Android toolchain, getpwuid_r is implemented but the header
3595   is missing:
3596   
3597    netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
3598   
3599   Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
3600   the prototype to curl_setup.h.
3601   
3602   Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
3603   Closes #2609
3604
3605 - [Rikard Falkeborn brought this change]
3606
3607   tests: update .gitignore for libtests
3608   
3609   Closes #2624
3610
3611 - [Rikard Falkeborn brought this change]
3612
3613   strictness: correct {infof, failf} format specifiers
3614   
3615   Closes #2623
3616
3617 - [Björn Stenberg brought this change]
3618
3619   option: disallow username in URL
3620   
3621   Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
3622   libcurl reject URLs with a username in them.
3623   
3624   Closes #2340
3625
3626 - libcurl-security.3: improved layout for two rememdy lists
3627
3628 - libcurl-security.3: refer to URL instead of in-source markdown file
3629
3630 Viktor Szakats (30 May 2018)
3631 - curl.rc: embed manifest for correct Windows version detection
3632   
3633   * enable it in `src/Makefile.m32`
3634   * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
3635     _not_ enabled via the existing `EMBED_MANIFEST` option
3636   * enable it for all Windows CMake builds (also disable the built-in
3637     minimal manifest, added by CMake by default.)
3638   
3639   For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
3640   the list of RC (Resource Compiler) flags to enable the manifest
3641   included in `src/curl.rc`. This may require to disable whatever
3642   automatic or other means in which way another manifest is added to
3643   `curl.exe`.
3644   
3645   Notice that Borland C doesn't support this method due to a
3646   long-pending resource compiler bug. Watcom C may also not handle
3647   it correctly when the `-zm` `wrc` option is used (this option may
3648   be unnecessary though) and regardless of options in certain earlier
3649   revisions of the 2.0 beta version.
3650   
3651   Closes https://github.com/curl/curl/pull/1221
3652   Fixes https://github.com/curl/curl/issues/2591
3653
3654 Patrick Monnerat (30 May 2018)
3655 - os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
3656
3657 - os400: implement mime api EBCDIC wrappers
3658   
3659   Also sync ILE/RPG binding to define the new functions.
3660
3661 Daniel Stenberg (29 May 2018)
3662 - setopt: add TLS 1.3 ciphersuites
3663   
3664   Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
3665   
3666   curl: added --tls13-ciphers and --proxy-tls13-ciphers
3667   
3668   Fixes #2435
3669   Reported-by: zzq1015 on github
3670   Closes #2607
3671
3672 - configure: override AR_FLAGS to silence warning
3673   
3674   The automake default ar flags are 'cru', but the 'u' flag in there
3675   causes warnings on many modern Linux distros. Removing 'u' may have a
3676   minor performance impact on older distros but should not cause harm.
3677   
3678   Explained on the automake mailing list already back in April 2015:
3679   
3680   https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
3681   
3682   Reported-by: elephoenix on github
3683   Fixes #2617
3684   Closes #2619
3685
3686 Sergei Nikulov (29 May 2018)
3687 - cmake: fixed comments in compile checks code
3688
3689 Daniel Stenberg (29 May 2018)
3690 - INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
3691   
3692   ... the older description doesn't work
3693   
3694   Reported-by: Peter Varga
3695   Fixes #2615
3696   Closes #2616
3697
3698 - [Will Dietz brought this change]
3699
3700   KNOWN_BUGS: restore text regarding #2101.
3701   
3702   This was added earlier but appears to have been removed accidentally.
3703   
3704   AFAICT this is very much still an issue.
3705   
3706   -----
3707   
3708   I say "accidentally" because the text seems to have harmlessly snuck
3709   into [1] (which makes no mention of it).  [1] was later reverted for
3710   unspecified reasons in [2], presumably because the mentioned issue was
3711   fixed or invalid.
3712   
3713   [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
3714   [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
3715   
3716   Closes #2618
3717
3718 - fnmatch: insist on escaped bracket to match
3719   
3720   A non-escaped bracket ([) is for a character group - as documented. It
3721   will *not* match an individual bracket anymore. Test case 1307 updated
3722   accordingly to match.
3723   
3724   Problem detected by OSS-Fuzz, although this fix is probably not a final
3725   fix for the notorious timeout issues.
3726   
3727   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
3728   Closes #2614
3729
3730 Patrick Monnerat (28 May 2018)
3731 - psl: use latest psl and refresh it periodically
3732   
3733   The latest psl is cached in the multi or share handle. It is refreshed
3734   before use after 72 hours.
3735   New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
3736   If the latest psl is not available, the builtin psl is used.
3737   
3738   Reported-by: Yaakov Selkowitz
3739   Fixes #2553
3740   Closes #2601
3741
3742 Daniel Stenberg (28 May 2018)
3743 - [Fabrice Fontaine brought this change]
3744
3745   configure: fix ssh2 linking when built with a static mbedtls
3746   
3747   The ssh2 pkg-config file could contain the following lines when build
3748   with a static version of mbedtls:
3749      Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
3750      Libs.private: /xxx/libmbedcrypto.a
3751   
3752   This static mbedtls library must be used to correctly detect ssh2
3753   support and this library must be copied in libcurl.pc otherwise
3754   compilation of any application (such as upmpdcli) with libcurl will fail
3755   when trying to found mbedtls functions included in libssh2.  So, replace
3756   pkg-config --libs-only-l by pkg-config --libs.
3757   
3758   Fixes:
3759    - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
3760   
3761   Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3762   Closes #2613
3763
3764 - RELEASE-NOTES: synced
3765
3766 - [Bernhard Walle brought this change]
3767
3768   cmake: check for getpwuid_r
3769   
3770   The autotools-based build system does it, so we do it also in CMake.
3771   
3772   Bug: #2609
3773   Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
3774
3775 - cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
3776
3777 - [Frank Gevaerts brought this change]
3778
3779   curl.1: Fix cmdline-opts reference errors.
3780   
3781   --data, --form, and --ntlm were declared to be mutually exclusive with
3782   non-existing options. --data and --form referred to --upload (which is
3783   short for --upload-file and therefore did work, so this one was merely
3784   a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
3785   
3786   Closes #2612
3787
3788 - [Frank Gevaerts brought this change]
3789
3790   docs: fix cmdline-opts metadata headers case consistency.
3791   
3792   Almost all headers start with an uppercase letter, but some didn't.
3793
3794 - mailmap: Max Savenkov
3795
3796 Sergei Nikulov (28 May 2018)
3797 - [Max Savenkov brought this change]
3798
3799   Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
3800
3801 Daniel Stenberg (27 May 2018)
3802 - mailmap: a Richard Alcock fixup
3803
3804 - [Richard Alcock brought this change]
3805
3806   schannel: add failf calls for client certificate failures
3807   
3808   Closes #2604
3809
3810 - [Richard Alcock brought this change]
3811
3812   winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
3813   
3814   Change requirement from $(DISTDIR) to $(DIRDIST)
3815   
3816   closes #2603
3817
3818 - [Richard Alcock brought this change]
3819
3820   winbuild: only delete OUTFILE if it exists
3821   
3822   This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
3823   "Could not find CURL_OBJS.inc.inc" message when building into a clean
3824   folder.
3825   
3826   closes #2602
3827
3828 - [Alejandro R. Sedeño brought this change]
3829
3830   content_encoding: handle zlib versions too old for Z_BLOCK
3831   
3832   Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
3833   
3834   Fixes #2606
3835   Closes #2608
3836
3837 - multi: provide a socket to wait for in Curl_protocol_getsock
3838   
3839   ... even when there's no protocol specific handler setup.
3840   
3841   Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
3842   Reported-by: Sean Miller
3843   Closes #2600
3844
3845 - [Linus Lewandowski brought this change]
3846
3847   httpauth: add support for Bearer tokens
3848   
3849   Closes #2102
3850
3851 - TODO: CURLINFO_PAUSE_STATE
3852   
3853   Closes #2588
3854
3855 Sergei Nikulov (24 May 2018)
3856 - cmake: set -d postfix for debug builds if not specified
3857          using -DCMAKE_DEBUG_POSTFIX explicitly
3858   
3859          fixes #2121, obsoletes #2384
3860
3861 Daniel Stenberg (23 May 2018)
3862 - configure: add basic test of --with-ssl prefix
3863   
3864   When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
3865   $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
3866   error. Helps users detect when giving configure the wrong path.
3867   
3868   Reported-by: Oleg Pudeyev
3869   Assisted-by: Per Malmberg
3870   Fixes #2580
3871
3872 Patrick Monnerat (22 May 2018)
3873 - http resume: skip body if http code 416 (range error) is ignored.
3874   
3875   This avoids appending error data to already existing good data.
3876   
3877   Test 92 is updated to match this change.
3878   New test 1156 checks all combinations of --range/--resume, --fail,
3879   Content-Range header and http status code 200/416.
3880   
3881   Fixes #1163
3882   Reported-By: Ithubg on github
3883   Closes #2578
3884
3885 Daniel Stenberg (22 May 2018)
3886 - tftp: make sure error is zero terminated before printfing it
3887
3888 - configure: add missing m4/ax_compile_check_sizeof.m4
3889   
3890   follow-up to mistake in 6876ccf90b4
3891
3892 Jay Satiro (22 May 2018)
3893 - [Johannes Schindelin brought this change]
3894
3895   schannel: make CAinfo parsing resilient to CR/LF
3896   
3897   OpenSSL has supported --cacert for ages, always accepting LF-only line
3898   endings ("Unix line endings") as well as CR/LF line endings ("Windows
3899   line endings").
3900   
3901   When we introduced support for --cacert also with Secure Channel (or in
3902   cURL speak: "WinSSL"), we did not take care to support CR/LF line
3903   endings, too, even if we are much more likely to receive input in that
3904   form when using Windows.
3905   
3906   Let's fix that.
3907   
3908   Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
3909   accepts CR/LF input already, and the trailing LF before the END
3910   CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
3911   we need to care about is the BEGIN CERTIFICATE marker. We do not
3912   actually need to verify here that the line ending is CR/LF. Just
3913   checking for a CR or an LF is really plenty enough.
3914   
3915   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3916   
3917   Closes https://github.com/curl/curl/pull/2592
3918
3919 Daniel Stenberg (22 May 2018)
3920 - CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
3921
3922 - RELEASE-NOTES: synced
3923
3924 - KNOWN_BUGS: mention the -O with %-encoded file names
3925   
3926   Closes #2573
3927
3928 - checksrc: make sure sizeof() is used *with* parentheses
3929   
3930   ... and unify the source code to adhere.
3931   
3932   Closes #2563
3933
3934 - curl: added --styled-output
3935   
3936   It is enabled by default, so --no-styled-output will switch off the
3937   detection/use of bold headers.
3938   
3939   Closes #2538
3940
3941 - curl: show headers in bold
3942   
3943   The feature is only enabled if the output is believed to be a tty.
3944   
3945   -J: There's some minor differences and improvements in -J handling, as
3946   now J should work with -i and it actually creates a file first using the
3947   initial name and then *renames* that to the one found in
3948   Content-Disposition (if any).
3949   
3950   -i: only shows headers for HTTP transfers now (as documented).
3951   Previously it would also show for pieces of the transfer that were HTTP
3952   (for example when doing FTP over a HTTP proxy).
3953   
3954   -i: now shows trailers as well. Previously they were not shown at all.
3955   
3956   --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
3957   now done in the header callback.
3958
3959 - configure: compile-time SIZEOF checks
3960   
3961   ... instead of exeucting code to get the size. Removes the use of
3962   LD_LIBRARY_PATH for this.
3963   
3964   Fixes #2586
3965   Closes #2589
3966   Reported-by: Bernhard Walle
3967
3968 - configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
3969   
3970   ... and export LD_LIBRARY_PATH properly. This is a follow-up from
3971   2d4c215.
3972   
3973   Fixes #2586
3974   Reported-by: Bernhard Walle
3975
3976 - docs: clarify CURLOPT_HTTPGET somewhat
3977   
3978   Reported-by: bsammon on github
3979   Fixes #2590
3980
3981 - curl_fnmatch: only allow two asterisks for matching
3982   
3983   The previous limit of 5 can still end up in situation that takes a very
3984   long time and consumes a lot of CPU.
3985   
3986   If there is still a rare use case for this, a user can provide their own
3987   fnmatch callback for a version that allows a larger set of wildcards.
3988   
3989   This commit was triggered by yet another OSS-Fuzz timeout due to this.
3990   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
3991   
3992   Closes #2587
3993
3994 - checksrc: fix too long line
3995   
3996   follow-up to e05ad5d
3997
3998 - [Aleks brought this change]
3999
4000   docs: mention HAproxy protocol "version 1"
4001   
4002   ...as there's also a version 2.
4003   
4004   Closes #2579
4005
4006 - examples/progressfunc: make it build on older libcurls
4007   
4008   This example was changed in ce2140a8c1 to use the new microsecond based
4009   getinfo option. This change makes it conditionally keep using the older
4010   option so that the example still builds with older libcurl versions.
4011   
4012   Closes #2584
4013
4014 - stub_gssapi: fix numerous 'unused parameter' warnings
4015   
4016   follow-up to d9e92fd9fd1d
4017
4018 - [Philip Prindeville brought this change]
4019
4020   getinfo: add microsecond precise timers for various intervals
4021   
4022   Provide a set of new timers that return the time intervals using integer
4023   number of microseconds instead of floats.
4024   
4025   The new info names are as following:
4026   
4027   CURLINFO_APPCONNECT_TIME_T
4028   CURLINFO_CONNECT_TIME_T
4029   CURLINFO_NAMELOOKUP_TIME_T
4030   CURLINFO_PRETRANSFER_TIME_T
4031   CURLINFO_REDIRECT_TIME_T
4032   CURLINFO_STARTTRANSFER_TIME_T
4033   CURLINFO_TOTAL_TIME_T
4034   
4035   Closes #2495
4036
4037 - openssl: acknowledge --tls-max for default version too
4038   
4039   ... previously it only used the max setting if a TLS version was also
4040   explicitly asked for.
4041   
4042   Reported-by: byte_bucket
4043   Fixes #2571
4044   Closes #2572
4045
4046 - bump: start working on the pending 7.61.0
4047
4048 - [Dagobert Michelsen brought this change]
4049
4050   tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
4051   
4052   The warning flag leads e.g. Sun Studio compiler to bail out.
4053   
4054   Closes #2576
4055
4056 - schannel_verify: fix build for non-schannel
4057
4058 Jay Satiro (16 May 2018)
4059 - rand: fix typo
4060
4061 - schannel: disable manual verify if APIs not available
4062   
4063   .. because original MinGW and old compilers do not have the Windows API
4064   definitions needed to support manual verification.
4065
4066 - [Archangel_SDY brought this change]
4067
4068   schannel: disable client cert option if APIs not available
4069   
4070   Original MinGW targets Windows 2000 by default, which lacks some APIs and
4071   definitions for this feature. Disable it if these APIs are not available.
4072   
4073   Closes https://github.com/curl/curl/pull/2522
4074
4075 Version 7.60.0 (15 May 2018)
4076
4077 Daniel Stenberg (15 May 2018)
4078 - RELEASE-NOTES: 7.60.0 release
4079
4080 - THANKS: added people from the curl 7.60.0 release
4081
4082 - docs/libcurl/index.html: removed
4083   
4084   The HTML files are long gone from the dist, now remove the last HTML
4085   file pointing to those missing files.
4086   
4087   d
4088
4089 - [steini2000 brought this change]
4090
4091   http2: remove unused variable
4092   
4093   Closes #2570
4094
4095 - [steini2000 brought this change]
4096
4097   http2: use easy handle of stream for logging
4098
4099 - gcc: disable picky gcc-8 function pointer warnings in two places
4100   
4101   Reported-by: Rikard Falkeborn
4102   Bug: #2560
4103   Closes #2569
4104
4105 - http2: use the correct function pointer typedef
4106   
4107   Fixes gcc-8 picky compiler warnings
4108   Reported-by: Rikard Falkeborn
4109   Bug: #2560
4110   Closes #2568
4111
4112 - CODE_STYLE: mention return w/o parens, but sizeof with
4113   
4114   ... and remove the github markdown syntax so that it renders better on
4115   the web site. Also, don't use back-ticks inlined to allow the CSS to
4116   highlight source code better.
4117
4118 - [Rikard Falkeborn brought this change]
4119
4120   examples: Fix format specifiers
4121   
4122   Closes #2561
4123
4124 - [Rikard Falkeborn brought this change]
4125
4126   tool: Fix format specifiers
4127
4128 - [Rikard Falkeborn brought this change]
4129
4130   ntlm: Fix format specifiers
4131
4132 - [Rikard Falkeborn brought this change]
4133
4134   tests: Fix format specifiers
4135
4136 - [Rikard Falkeborn brought this change]
4137
4138   lib: Fix format specifiers
4139
4140 - contributors.sh: use "on github", not at
4141
4142 - http2: getsock fix for uploads
4143   
4144   When there's an upload in progress, make sure to wait for the socket to
4145   become writable.
4146   
4147   Detected-by: steini2000 on github
4148   Bug: #2520
4149   Closes #2567
4150
4151 - pingpong: fix response cache memcpy overflow
4152   
4153   Response data for a handle with a large buffer might be cached and then
4154   used with the "closure" handle when it has a smaller buffer and then the
4155   larger cache will be copied and overflow the new smaller heap based
4156   buffer.
4157   
4158   Reported-by: Dario Weisser
4159   CVE: CVE-2018-1000300
4160   Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
4161
4162 - http: restore buffer pointer when bad response-line is parsed
4163   
4164   ... leaving the k->str could lead to buffer over-reads later on.
4165   
4166   CVE: CVE-2018-1000301
4167   Assisted-by: Max Dymond
4168   
4169   Detected by OSS-Fuzz.
4170   Bug: https://curl.haxx.se/docs/adv_2018-b138.html
4171   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
4172
4173 Patrick Monnerat (13 May 2018)
4174 - cookies: do not take cookie name as a parameter
4175   
4176   RFC 6265 section 4.2.1 does not set restrictions on cookie names.
4177   This is a follow-up to commit 7f7fcd0.
4178   Also explicitly check proper syntax of cookie name/value pair.
4179   
4180   New test 1155 checks that cookie names are not reserved words.
4181   
4182   Reported-By: anshnd at github
4183   Fixes #2564
4184   Closes #2566
4185
4186 Daniel Stenberg (12 May 2018)
4187 - smb: reject negative file sizes
4188   
4189   Assisted-by: Max Dymond
4190   
4191   Detected by OSS-Fuzz
4192   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
4193
4194 - setup_transfer: deal with both sockets being -1
4195   
4196   Detected by Coverity; CID 1435559.  Follow-up to f8d608f38d00. It would
4197   index the array with -1 if neither index was a socket.
4198
4199 - travis: add build using NSS
4200   
4201   Closes #2558
4202
4203 - [Sunny Purushe brought this change]
4204
4205   openssl: change FILE ops to BIO ops
4206   
4207   To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES
4208   handling is causing problems. This fix changes the OpenSSL backend code
4209   to use BIO functions instead of FILE I/O functions to circumvent those
4210   problems.
4211   
4212   Closes #2512
4213
4214 - travis: add a build using WolfSSL
4215   
4216   Assisted-by: Dan Fandrich
4217   
4218   Closes #2528
4219
4220 - RELEASE-NOTES: typo
4221
4222 - RELEASE-NOTES: synced
4223
4224 - [Daniel Gustafsson brought this change]
4225
4226   URLs: fix one more http url
4227   
4228   This file wasn't included in commit 4af40b3646d3b09 which updated all
4229   haxx.se http urls to https. The file was committed prior to that update,
4230   but may have been merged after it and hence didn't get updated.
4231   
4232   Closes #2550
4233
4234 - github/lock: auto-lock closed issues after 90 days of inactivity
4235
4236 - vtls: fix missing commas
4237   
4238   follow-up to e66cca046cef
4239
4240 - vtls: use unified "supports" bitfield member in backends
4241   
4242   ... instead of previous separate struct fields, to make it easier to
4243   extend and change individual backends without having to modify them all.
4244   
4245   closes #2547
4246
4247 - transfer: don't unset writesockfd on setup of multiplexed conns
4248   
4249   Curl_setup_transfer() can be called to setup a new individual transfer
4250   over a multiplexed connection so it shouldn't unset writesockfd.
4251   
4252   Bug: #2520
4253   Closes #2549
4254
4255 - [Frank Gevaerts brought this change]
4256
4257   configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
4258   
4259   They are removed from the compiler flags.
4260   
4261   This ensures that make dependency tracking will force a rebuild whenever
4262   configure --enable-debug or --enable-curldebug changes.
4263   
4264   Closes #2548
4265
4266 - http: don't set the "rewind" flag when not uploading anything
4267   
4268   It triggers an assert.
4269   
4270   Detected by OSS-Fuzz
4271   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
4272   Closes #2546
4273
4274 - travis: add an mbedtls build
4275   
4276   Closes #2531
4277
4278 - configure: only check for CA bundle for file-using SSL backends
4279   
4280   When only building with SSL backends that don't use the CA bundle file
4281   (by default), skip the check.
4282   
4283   Fixes #2543
4284   Fixes #2180
4285   Closes #2545
4286
4287 - ssh-libssh.c: fix left shift compiler warning
4288   
4289   ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to
4290   represent, but 'int' only has 32 bits [-Wshift-overflow=]
4291   
4292   'len' will never be that big anyway so I converted the run-time check to
4293   a regular assert.
4294
4295 - [Stephan Mühlstrasser brought this change]
4296
4297   URL: fix ASCII dependency in strcpy_url and strlen_url
4298   
4299   Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the
4300   changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of
4301   the problem that strcpy_url() was modified unilaterally without also
4302   modifying strlen_url(). As a consequence strcpy_url() was again
4303   depending on ASCII encoding.
4304   
4305   This change fixes strlen_url() and strcpy_url() in parallel to use a
4306   common host-encoding independent criterion for deciding whether an URL
4307   character must be %-escaped.
4308   
4309   Closes #2535
4310
4311 - [Denis Ollier brought this change]
4312
4313   docs: remove extraneous commas in man pages
4314   
4315   Closes #2544
4316
4317 - RELEASE-NOTES: synced
4318
4319 - Revert "TODO: remove configure --disable-pthreads"
4320   
4321   This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3.
4322   
4323   --disable-pthreads can be used to disable pthreads and get the threaded
4324   resolver to use the windows threading when building with mingw.
4325
4326 - vtls: don't define MD5_DIGEST_LENGTH for wolfssl
4327   
4328   ... as it defines it (too)
4329
4330 - TODO: remove configure --disable-pthreads
4331
4332 Jay Satiro (2 May 2018)
4333 - [David Garske brought this change]
4334
4335   wolfssl: Fix non-blocking connect
4336   
4337   Closes https://github.com/curl/curl/pull/2542
4338
4339 Daniel Stenberg (30 Apr 2018)
4340 - CURLOPT_URL.3: add ENCODING section [ci skip]
4341   
4342   Feedback-by: Michael Kilburn
4343
4344 - KNOWN_BUGS: Client cert with Issuer DN differs between backends
4345   
4346   Closes #1411
4347
4348 - KNOWN_BUGS: Passive transfer tries only one IP address
4349   
4350   Closes #1508
4351
4352 - KNOWN_BUGS: --upload-file . hang if delay in STDIN
4353   
4354   Closes #2051
4355
4356 - KNOWN_BUGS: Connection information when using TCP Fast Open
4357   
4358   Closes #1332
4359
4360 - travis: enable libssh2 on both macos and Linux
4361   
4362   It seems to not be detected by default anymore (which is a bug I
4363   believe)
4364   
4365   Closes #2541
4366
4367 - TODO: Support the clienthello extension
4368   
4369   Closes #2299
4370
4371 - TODO: CLOEXEC
4372   
4373   Closes #2252
4374
4375 - tests: provide 'manual' as a feature to optionally require
4376   
4377   ... and make test 1026 rely on that feature so that --disable-manual
4378   builds don't cause test failures.
4379   
4380   Reported-by: Max Dymond and Anders Roxell
4381   Fixes #2533
4382   Closes #2540
4383
4384 - CURLINFO_PROTOCOL.3: mention the existing defined names
4385
4386 Jay Satiro (27 Apr 2018)
4387 - [Daniel Gustafsson brought this change]
4388
4389   cookies: remove unused macro
4390   
4391   Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused,
4392   so remove as it's not part of the published API.
4393   
4394   Closes https://github.com/curl/curl/pull/2537
4395
4396 Daniel Stenberg (27 Apr 2018)
4397 - [Daniel Gustafsson brought this change]
4398
4399   checksrc: force indentation of lines after an else
4400   
4401   This extends the INDENTATION case to also handle 'else' statements
4402   and require proper indentation on the following line. Also fixes the
4403   offending cases found in the codebase.
4404   
4405   Closes #2532
4406
4407 - http2: fix null pointer dereference in http2_connisdead
4408   
4409   This function can get called on a connection that isn't setup enough to
4410   have the 'recv_underlying' function pointer initialized so it would try
4411   to call the NULL pointer.
4412   
4413   Reported-by: Dario Weisser
4414   
4415   Follow-up to db1b2c7fe9b093f8 (never shipped in a release)
4416   Closes #2536
4417
4418 - http2: get rid of another strstr()
4419   
4420   Follow-up to 1514c44655e12e: replace another strstr() call done on a
4421   buffer that might not be zero terminated - with a memchr() call, even if
4422   we know the substring will be found.
4423   
4424   Assisted-by: Max Dymond
4425   
4426   Detected by OSS-Fuzz
4427   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
4428   
4429   Closes #2534
4430
4431 - cyassl: adapt to libraries without TLS 1.0 support built-in
4432   
4433   WolfSSL doesn't enable it by default anymore
4434
4435 - configure: provide --with-wolfssl as an alias for --with-cyassl
4436
4437 - RELEASE-NOTES: synced
4438
4439 - [Daniel Gustafsson brought this change]
4440
4441   os400.c: fix ASSIGNWITHINCONDITION checksrc warnings
4442   
4443   All occurrences of assignment within conditional expression in
4444   os400sys.c rewritten into two steps: first assignment and then the check
4445   on the success of the assignment. Also adjust related incorrect brace
4446   positions to match project indentation style.
4447   
4448   This was spurred by seeing "if((inp = input_token))", but while in there
4449   all warnings were fixed.
4450   
4451   There should be no functional change from these changes.
4452   
4453   Closes #2525
4454
4455 - [Daniel Gustafsson brought this change]
4456
4457   cookies: ensure that we have cookies before writing jar
4458   
4459   The jar should be written iff there are cookies, so ensure that we still
4460   have cookies after expiration to avoid creating an empty file.
4461   
4462   Closes #2529
4463
4464 - strcpy_url: only %-encode values >= 0x80
4465   
4466   OSS-Fuzz detected
4467   
4468   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
4469   
4470   Broke in dd7521bcc1b7
4471
4472 - mime: avoid NULL pointer dereference risk
4473   
4474   Coverity detected, CID 1435120
4475   
4476   Closes #2527
4477
4478 - [Stephan Mühlstrasser brought this change]
4479
4480   ctype: restore character classification for non-ASCII platforms
4481   
4482   With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic
4483   character classification macros and functions were introduced in
4484   curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on
4485   non-ASCII, e.g. EBCDIC platforms. This change restores the previous set
4486   of character classification macros when CURL_DOES_CONVERSIONS is
4487   defined.
4488   
4489   Closes #2494
4490
4491 - ftplistparser: keep state between invokes
4492   
4493   Fixes FTP wildcard parsing when done over a number of read buffers.
4494   
4495   Regression from f786d1f14
4496   
4497   Reported-by: wncboy on github
4498   Fixes #2445
4499   Closes #2526
4500
4501 - examples/http2-upload: expand buffer to avoid silly warning
4502   
4503   http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated
4504   writing between 2 and 11 bytes into a region of size between 8 and 17
4505
4506 - examples/sftpuploadresume: typecast fseek argument to long
4507   
4508   /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long
4509   int' from 'curl_off_t {aka long long int}' may alter its value
4510
4511 - Revert "ftplistparser: keep state between invokes"
4512   
4513   This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934.
4514   
4515   Caused fuzzer problems on travis not seen when this was a PR!
4516
4517 - Curl_memchr: zero length input can't match
4518   
4519   Avoids undefined behavior.
4520   
4521   Reported-by: Geeknik Labs
4522
4523 - ftplistparser: keep state between invokes
4524   
4525   Fixes FTP wildcard parsing when doing over a number of read buffers.
4526   
4527   Regression from f786d1f14
4528   
4529   Reported-by: wncboy on github
4530   Fixes #2445
4531   Closes #2519
4532
4533 - ftplistparser: renamed some members and variables
4534   
4535   ... to make them better spell out what they're for.
4536
4537 - RELEASE-NOTES: synced
4538
4539 - [Christian Schmitz brought this change]
4540
4541   curl_global_sslset: always provide available backends
4542   
4543   Closes #2499
4544
4545 - http2: convert an assert to run-time check
4546   
4547   Fuzzing has proven we can reach code in on_frame_recv with status_code
4548   not having been set, so let's detect that in run-time (instead of with
4549   assert) and error error accordingly.
4550   
4551   (This should no longer happen with the latest nghttp2)
4552   
4553   Detected by OSS-Fuzz
4554   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
4555   Closes #2514
4556
4557 - curl.1: clarify that options and URLs can be mixed
4558   
4559   Fixes #2515
4560   Closes #2517
4561
4562 Jay Satiro (23 Apr 2018)
4563 - [Archangel_SDY brought this change]
4564
4565   CURLOPT_SSLCERT.3: improve WinSSL-specific usage info
4566   
4567   Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
4568   
4569   Closes https://github.com/curl/curl/pull/2504
4570
4571 - [Archangel_SDY brought this change]
4572
4573   schannel: fix build error on targets <= XP
4574   
4575   - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't
4576     support the latter.
4577   
4578   Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
4579   
4580   Closes https://github.com/curl/curl/pull/2504
4581
4582 Daniel Stenberg (23 Apr 2018)
4583 - Revert "ftplistparser: keep state between invokes"
4584   
4585   This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9.
4586   
4587   Unfortunately this fix introduces memory leaks I've not been able to fix
4588   in several days. Reverting this for now to get the leaks fixed.
4589
4590 Jay Satiro (21 Apr 2018)
4591 - tool_help: clarify --max-time unit of time is seconds
4592   
4593   Before:
4594    -m, --max-time <time> Maximum time allowed for the transfer
4595   
4596   After:
4597    -m, --max-time <seconds> Maximum time allowed for the transfer
4598
4599 Daniel Stenberg (20 Apr 2018)
4600 - http2: handle GOAWAY properly
4601   
4602   When receiving REFUSED_STREAM, mark the connection for close and retry
4603   streams accordingly on another/fresh connection.
4604   
4605   Reported-by: Terry Wu
4606   Fixes #2416
4607   Fixes #1618
4608   Closes #2510
4609
4610 - http2: clear the "drain counter" when a stream is closed
4611   
4612   This fixes the notorious "httpc->drain_total >= data->state.drain"
4613   assert.
4614   
4615   Reported-by: Anders Bakken
4616   
4617   Fixes #1680
4618   Closes #2509
4619
4620 - http2: avoid strstr() on data not zero terminated
4621   
4622   It's not strictly clear if the API contract allows us to call strstr()
4623   on a string that isn't zero terminated even when we know it will find
4624   the substring, and clang's ASAN check dislikes us for it.
4625   
4626   Also added a check of the return code in case it fails, even if I can't
4627   think of a situation how that can trigger.
4628   
4629   Detected by OSS-Fuzz
4630   Closes #2513
4631   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
4632
4633 - [Stephan Mühlstrasser brought this change]
4634
4635   openssl: fix subjectAltName check on non-ASCII platforms
4636   
4637   Curl_cert_hostcheck operates with the host character set, therefore the
4638   ASCII subjectAltName string retrieved with OpenSSL must be converted to
4639   the host encoding before comparison.
4640   
4641   Closes #2493
4642
4643 Jay Satiro (20 Apr 2018)
4644 - openssl: Add support for OpenSSL 1.1.1 verbose-mode trace messages
4645   
4646   - Support handling verbose-mode trace messages of type
4647     SSL3_RT_INNER_CONTENT_TYPE, SSL3_MT_ENCRYPTED_EXTENSIONS,
4648     SSL3_MT_END_OF_EARLY_DATA, SSL3_MT_KEY_UPDATE, SSL3_MT_NEXT_PROTO,
4649     SSL3_MT_MESSAGE_HASH
4650   
4651   Reported-by: iz8mbw@users.noreply.github.com
4652   
4653   Fixes https://github.com/curl/curl/issues/2403
4654
4655 Daniel Stenberg (19 Apr 2018)
4656 - ftplistparser: keep state between invokes
4657   
4658   Regression from f786d1f14
4659   
4660   Reported-by: wncboy on github
4661   Fixes #2445
4662   Closes #2508
4663
4664 - detect_proxy: only show proxy use if it had contents
4665
4666 - http2: handle on_begin_headers() called more than once
4667   
4668   This triggered an assert if called more than once in debug mode (and a
4669   memory leak if not debug build). With the right sequence of HTTP/2
4670   headers incoming it can happen.
4671   
4672   Detected by OSS-Fuzz
4673   
4674   Closes #2507
4675   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
4676
4677 Jay Satiro (18 Apr 2018)
4678 - [Dan McNulty brought this change]
4679
4680   schannel: add support for CURLOPT_CAINFO
4681   
4682   - Move verify_certificate functionality in schannel.c into a new
4683     file called schannel_verify.c. Additionally, some structure defintions
4684     from schannel.c have been moved to schannel.h to allow them to be
4685     used in schannel_verify.c.
4686   
4687   - Make verify_certificate functionality for Schannel available on
4688     all versions of Windows instead of just Windows CE. verify_certificate
4689     will be invoked on Windows CE or when the user specifies
4690     CURLOPT_CAINFO and CURLOPT_SSL_VERIFYPEER.
4691   
4692   - In verify_certificate, create a custom certificate chain engine that
4693     exclusively trusts the certificate store backed by the CURLOPT_CAINFO
4694     file.
4695   
4696   - doc updates of --cacert/CAINFO support for schannel
4697   
4698   - Use CERT_NAME_SEARCH_ALL_NAMES_FLAG when invoking CertGetNameString
4699     when available. This implements a TODO in schannel.c to improve
4700     handling of multiple SANs in a certificate. In particular, all SANs
4701     will now be searched instead of just the first name.
4702   
4703   - Update tool_operate.c to not search for the curl-ca-bundle.crt file
4704     when using Schannel to maintain backward compatibility. Previously,
4705     any curl-ca-bundle.crt file found in that search would have been
4706     ignored by Schannel. But, with CAINFO support, the file found by
4707     that search would have been used as the certificate store and
4708     could cause issues for any users that have curl-ca-bundle.crt in
4709     the search path.
4710   
4711   - Update url.c to not set the build time CURL_CA_BUNDLE if the selected
4712     SSL backend is Schannel. We allow setting CA location for schannel
4713     only when explicitly specified by the user via CURLOPT_CAINFO /
4714     --cacert.
4715   
4716   - Add new test cases 3000 and 3001. These test cases check that the first
4717     and last SAN, respectively, matches the connection hostname. New test
4718     certificates have been added for these cases. For 3000, the certificate
4719     prefix is Server-localhost-firstSAN and for 3001, the certificate
4720     prefix is Server-localhost-secondSAN.
4721   
4722   - Remove TODO 15.2 (Add support for custom server certificate
4723     validation), this commit addresses it.
4724   
4725   Closes https://github.com/curl/curl/pull/1325
4726
4727 - schannel: fix warning
4728   
4729   - Fix warning 'integer from pointer without a cast' on 3rd arg in
4730     CertOpenStore. The arg type HCRYPTPROV may be a pointer or integer
4731     type of the same size.
4732   
4733   Follow-up to e35b025.
4734   
4735   Caught by Marc's CI builds.
4736
4737 - [Jakub Wilk brought this change]
4738
4739   docs: fix typos
4740   
4741   Closes https://github.com/curl/curl/pull/2503
4742
4743 Daniel Stenberg (17 Apr 2018)
4744 - RELEASE-NOTES: synced
4745
4746 Jay Satiro (17 Apr 2018)
4747 - [Kees Dekker brought this change]
4748
4749   winbuild: Support custom devel paths for each dependency
4750   
4751   - Support custom devel paths for c-ares, mbedTLS, nghttp2, libSSH2,
4752     OpenSSL and zlib. Respectively: CARES_PATH, MBEDTLS_PATH,
4753     NGHTTP2_PATH, SSH2_PATH, SSL_PATH and ZLIB_PATH.
4754   
4755   - Use lib.exe for making the static library instead of link.exe /lib.
4756     The latter is undocumented and could cause problems as noted in the
4757     comments.
4758   
4759   - Remove a dangling URL that no longer worked. (I was not able to find
4760     the IDN download at MSDN/microsoft.com, so it seems to be removed.)
4761   
4762   - Remove custom override for release-ssh2-ssl-dll-zlib configuration.
4763     Nobody knows why it was there and as far as we can see is unnecessary.
4764   
4765   Closes https://github.com/curl/curl/pull/2474
4766
4767 Daniel Stenberg (17 Apr 2018)
4768 - [Jess brought this change]
4769
4770   README.md: add backers and sponsors
4771   
4772   Closes #2484
4773
4774 - [Archangel_SDY brought this change]
4775
4776   schannel: add client certificate authentication
4777   
4778   Users can now specify a client certificate in system certificates store
4779   explicitly using expression like `--cert "CurrentUser\MY\<thumbprint>"`
4780   
4781   Closes #2376
4782
4783 Marcel Raad (16 Apr 2018)
4784 - [toughengineer brought this change]
4785
4786   ntlm_sspi: fix authentication using Credential Manager
4787   
4788   If you pass empty user/pass asking curl to use Windows Credential
4789   Storage (as stated in the docs) and it has valid credentials for the
4790   domain, e.g.
4791   curl -v -u : --ntlm example.com
4792   currently authentication fails.
4793   This change fixes it by providing proper SPN string to the SSPI API
4794   calls.
4795   
4796   Fixes https://github.com/curl/curl/issues/1622
4797   Closes https://github.com/curl/curl/pull/1660
4798
4799 Daniel Stenberg (16 Apr 2018)
4800 - configure: keep LD_LIBRARY_PATH changes local
4801   
4802   ... only set it when we actually have to run tests to reduce its impact
4803   on for example build commands etc.
4804   
4805   Fixes #2490
4806   Closes #2492
4807   
4808   Reported-by: Dmitry Mikhirev
4809
4810 Marcel Raad (16 Apr 2018)
4811 - urldata: make service names unconditional
4812   
4813   The ifdefs have become quite long. Also, the condition for the
4814   definition of CURLOPT_SERVICE_NAME and for setting it from
4815   CURLOPT_SERVICE_NAME have diverged. We will soon also need the two
4816   options for NTLM, at least when using SSPI, for
4817   https://github.com/curl/curl/pull/1660.
4818   Just make the definitions unconditional to make that easier.
4819   
4820   Closes https://github.com/curl/curl/pull/2479
4821
4822 Daniel Stenberg (16 Apr 2018)
4823 - test1148: tolerate progress updates better
4824   
4825   Fixes #2446
4826   Closes #2488
4827
4828 - [Christian Schmitz brought this change]
4829
4830   ssh: show libSSH2 error code when closing fails
4831   
4832   Closes #2500
4833
4834 Jay Satiro (15 Apr 2018)
4835 - [Daniel Gustafsson brought this change]
4836
4837   vauth: Fix typo
4838   
4839   Address various spellings of "credentials".
4840   
4841   Closes https://github.com/curl/curl/pull/2496
4842
4843 - [Dagobert Michelsen brought this change]
4844
4845   system.h: Add sparcv8plus to oracle/sunpro 32-bit detection
4846   
4847   With specific compiler options selecting the arch like -xarch=sparc on
4848   newer compilers like Oracle Studio 12.4 there is no definition of
4849   __sparcv8 but __sparcv8plus which means the V9 ISA, but limited to the
4850   32ÎíÎñbit subset defined by the V8plus ISA specification, without the
4851   Visual Instruction Set (VIS), and without other implementation-specific
4852   ISA extensions. So it should be the same as __sparcv8.
4853   
4854   Closes https://github.com/curl/curl/pull/2491
4855
4856 - [Daniel Gustafsson brought this change]
4857
4858   checksrc: Fix typo
4859   
4860   Fix typo in "semicolon" spelling and remove stray tab character.
4861   
4862   Closes https://github.com/curl/curl/pull/2498
4863
4864 - [Daniel Gustafsson brought this change]
4865
4866   all: Refactor malloc+memset to use calloc
4867   
4868   When a zeroed out allocation is required, use calloc() rather than
4869   malloc() followed by an explicit memset(). The result will be the
4870   same, but using calloc() everywhere increases consistency in the
4871   codebase and avoids the risk of subtle bugs when code is injected
4872   between malloc and memset by accident.
4873   
4874   Closes https://github.com/curl/curl/pull/2497
4875
4876 Daniel Stenberg (12 Apr 2018)
4877 - duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
4878   
4879   Verified in test 1502 now
4880   
4881   Fixes #2485
4882   Closes #2486
4883   Reported-by: Ernst Sjöstrand
4884
4885 - mailmap: add a monnerat fixup [ci skip]
4886
4887 - proxy: show getenv proxy use in verbose output
4888   
4889   ... to aid debugging etc as it sometimes isn't immediately obvious why
4890   curl uses or doesn't use a proxy.
4891   
4892   Inspired by #2477
4893   
4894   Closes #2480
4895
4896 - travis: build libpsl and make builds use it
4897   
4898   closes #2471
4899
4900 - travis: bump to clang 6 and gcc 7
4901   
4902   Extra-eye-on-this-by: Marcel Raad
4903   
4904   Closes #2478
4905
4906 Marcel Raad (10 Apr 2018)
4907 - travis: use trusty for coverage build
4908   
4909   This works now and precise is in the process of being decommissioned.
4910   
4911   Closes https://github.com/curl/curl/pull/2476
4912
4913 - lib: silence null-dereference warnings
4914   
4915   In debug mode, MingGW-w64's GCC 7.3 issues null-dereference warnings
4916   when dereferencing pointers after DEBUGASSERT-ing that they are not
4917   NULL.
4918   Fix this by removing the DEBUGASSERTs.
4919   
4920   Suggested-by: Daniel Stenberg
4921   Ref: https://github.com/curl/curl/pull/2463
4922
4923 - [Kees Dekker brought this change]
4924
4925   winbuild: fix URL
4926   
4927   Follow up on https://github.com/curl/curl/pull/2472.
4928   Now using en-us instead of nl-nl as language code in the URL.
4929   
4930   Closes https://github.com/curl/curl/pull/2475
4931
4932 Daniel Stenberg (9 Apr 2018)
4933 - [Kees Dekker brought this change]
4934
4935   winbuild: updated the documentation
4936   
4937   The setenv command no longer exists and visual studio build prompts got
4938   changed. Used Visual Studio 2015/2017 as reference.
4939   
4940   Closes #2472
4941
4942 - test1136: fix cookie order after commit c990eadd1277
4943
4944 - build: cleanup to fix clang warnings/errors
4945   
4946   unit1309 and vtls/gtls: error: arithmetic on a null pointer treated as a
4947   cast from integer to pointer is a GNU extension
4948   
4949   Reported-by: Rikard Falkeborn
4950   
4951   Fixes #2466
4952   Closes #2468
4953
4954 Jay Satiro (7 Apr 2018)
4955 - examples/sftpuploadresmue: Fix Windows large file seek
4956   
4957   - Use _fseeki64 instead of fseek (long) to seek curl_off_t in Windows.
4958   
4959   - Use CURL_FORMAT_CURL_OFF_T specifier instead of %ld to print
4960     curl_off_t.
4961   
4962   Caught by Marc's CI builds.
4963
4964 Daniel Stenberg (7 Apr 2018)
4965 - curl_setup: provide a CURL_SA_FAMILY_T type if none exists
4966   
4967   ... and use this type instead of 'sa_family_t' in the code since several
4968   platforms don't have it.
4969   
4970   Closes #2463
4971
4972 - [Eric Gallager brought this change]
4973
4974   build: add picky compiler warning flags for gcc 6 and 7
4975
4976 - configure: detect sa_family_t
4977
4978 Jay Satiro (7 Apr 2018)
4979 - [Stefan Agner brought this change]
4980
4981   tool_operate: Fix retry on FTP 4xx to ignore other protocols
4982   
4983   Only treat response code as FTP response codes in case the
4984   protocol type is FTP.
4985   
4986   This fixes an issue where an HTTP download was treated as FTP
4987   in case libcurl returned with 33. This happens when the
4988   download has already finished and the server responses 416:
4989     HTTP/1.1 416 Requested Range Not Satisfiable
4990   
4991   This should not be treated as an FTP error.
4992   
4993   Fixes #2464
4994   Closes #2465
4995
4996 Daniel Stenberg (6 Apr 2018)
4997 - hash: calculate sizes with size_t instead of longs
4998   
4999   ... since they return size_t anyway!
5000   
5001   closes #2462
5002
5003 - RELEASE-NOTES: synced
5004
5005 - [Jay Satiro brought this change]
5006
5007   build-openssl.bat: Refer to VS2017 as VC14.1 instead of VC15
5008   
5009   .. and do the same for build-wolfssl.bat.
5010   
5011   Because MS calls it VC14.1.
5012   
5013   Closes https://github.com/curl/curl/pull/2189
5014
5015 - [Kees Dekker brought this change]
5016
5017   winbuild: make the clean target work without build-type
5018   
5019   Due to the check in Makefile.vc and MakefileBuild.vc, no make call can
5020   be invoked unless a build-type was specified. However, a clean target
5021   only existed when a build type was specified. As a result, the clean
5022   target was unreachable. Made clean target unconditional.
5023   
5024   Closes #2455
5025
5026 - [patelvivekv1993 brought this change]
5027
5028   build-openssl.bat: allow custom paths for VS and perl
5029   
5030   Fixes #2430
5031   Closes #2457
5032
5033 - [Laurie Clark-Michalek brought this change]
5034
5035   FTP: allow PASV on IPv6 connections when a proxy is being used
5036   
5037   In the situation of a client connecting to an FTP server using an IPv6
5038   tunnel proxy, the connection info will indicate that the connection is
5039   IPv6. However, because the server behing the proxy is IPv4, it is
5040   permissable to attempt PSV mode. In the case of the FTP server being
5041   IPv4 only, EPSV will always fail, and with the current logic curl will
5042   be unable to connect to the server, as the IPv6 fwdproxy causes curl to
5043   think that EPSV is impossible.
5044   
5045   Closes #2432
5046
5047 - [Jon DeVree brought this change]
5048
5049   file: restore old behavior for file:////foo/bar URLs
5050   
5051   curl 7.57.0 and up interpret this according to Appendix E.3.2 of RFC
5052   8089 but then returns an error saying this is unimplemented. This is
5053   actually a regression in behavior on both Windows and Unix.
5054   
5055   Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
5056   then passed to the relevant OS API. This means that the behavior of this
5057   case is actually OS dependent.
5058   
5059   The Unix path resolution rules say that the OS must handle swallowing
5060   the extra "/" and so this path is the same as "/foo/bar"
5061   
5062   The Windows path resolution rules say that this is a UNC path and
5063   automatically handles the SMB access for the program. So curl on Windows
5064   was already doing Appendix E.3.2 without any special code in curl.
5065   
5066   Regression
5067   
5068   Closes #2438
5069
5070 - [Gaurav Malhotra brought this change]
5071
5072   Revert "openssl: Don't add verify locations when verifypeer==0"
5073   
5074   This reverts commit dc85437736e1fc90e689bb1f6c51c8f1aa9430eb.
5075   
5076   libcurl (with the OpenSSL backend) performs server certificate verification
5077   even if verifypeer == 0 and the verification result is available using
5078   CURLINFO_SSL_VERIFYRESULT. The commit that is being reverted caused the
5079   CURLINFO_SSL_VERIFYRESULT to not have useful information for the
5080   verifypeer == 0 use case (it would always have
5081   X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY).
5082   
5083   Closes #2451
5084
5085 - [Wyatt O'Day brought this change]
5086
5087   tls: fix mbedTLS 2.7.0 build + handle sha256 failures
5088   
5089   (mbedtls 2.70 compiled with MBEDTLS_DEPRECATED_REMOVED)
5090   
5091   Closes #2453
5092
5093 - [Lauri Kasanen brought this change]
5094
5095   cookie: case-insensitive hashing for the domains
5096   
5097   closes #2458
5098
5099 Patrick Monnerat (4 Apr 2018)
5100 - cookie: fix and optimize 2nd top level domain name extraction
5101   
5102   This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
5103   is processed.
5104   
5105   test46 updated to cover this case.
5106   
5107   Follow-up to commit c990ead.
5108   
5109   Ref: https://github.com/curl/curl/pull/2440
5110
5111 Daniel Stenberg (4 Apr 2018)
5112 - openssl: provide defines for argument typecasts to build warning-free
5113   
5114   ... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
5115
5116 - [Bernard Spil brought this change]
5117
5118   openssl: fix build with LibreSSL 2.7
5119   
5120    - LibreSSL 2.7 implements (most of) OpenSSL 1.1 API
5121   
5122   Fixes #2319
5123   Closes #2447
5124   Closes #2448
5125   
5126   Signed-off-by: Bernard Spil <brnrd@FreeBSD.org>
5127
5128 - [Lauri Kasanen brought this change]
5129
5130   cookie: store cookies per top-level-domain-specific hash table
5131   
5132   This makes libcurl handle thousands of cookies much better and speedier.
5133   
5134   Closes #2440
5135
5136 - [Lauri Kasanen brought this change]
5137
5138   cookies: when reading from a file, only remove_expired once
5139   
5140   This drops the cookie load time for 8k cookies from 178ms to 15ms.
5141   
5142   Closes #2441
5143
5144 - test1148: set a fixed locale for the test
5145   
5146   ...as otherwise it might use a different decimal sign.
5147   
5148   Bug: #2436
5149   Reported-by: Oumph on github
5150
5151 Jay Satiro (31 Mar 2018)
5152 - docs: fix CURLINFO_*_T examples use of CURL_FORMAT_CURL_OFF_T
5153   
5154   - Put a percent sign before each CURL_FORMAT_CURL_OFF_T in printf.
5155   
5156   For example "%" CURL_FORMAT_CURL_OFF_T becomes %lld or similar.
5157   
5158   Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
5159   Reported-by: David L.
5160
5161 Sergei Nikulov (27 Mar 2018)
5162 - [Michał Janiszewski brought this change]
5163
5164   cmake: Add advapi32 as explicit link library for win32
5165   
5166   ARM targets need advapi32 explicitly.
5167   
5168   Closes #2363
5169
5170 Daniel Stenberg (27 Mar 2018)
5171 - TODO: connection cache sharing is now supporte
5172
5173 Jay Satiro (26 Mar 2018)
5174 - travis: enable apt retry on fail
5175   
5176   This is a workaround for an unsolved travis issue that is causing CI
5177   instances to sporadically fail due to 'unable to connect' issues during
5178   apt stage.
5179   
5180   Ref: https://github.com/travis-ci/travis-ci/issues/8507
5181   Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
5182
5183 Michael Kaufmann (26 Mar 2018)
5184 - runtests.pl: fix warning 'use of uninitialized value'
5185   
5186   follow-up to a9a7b60
5187   
5188   Closes #2428
5189
5190 Daniel Stenberg (24 Mar 2018)
5191 - gitignore: ignore more generated files
5192
5193 - threaded resolver: track resolver time and set suitable timeout values
5194   
5195   In order to make curl_multi_timeout() return suitable "sleep" times even
5196   when there's no socket to wait for while the name is being resolved in a
5197   helper thread.
5198   
5199   It will increases the timeouts as time passes.
5200   
5201   Closes #2419
5202
5203 - [Howard Chu brought this change]
5204
5205   openldap: fix for NULL return from ldap_get_attribute_ber()
5206   
5207   Closes #2399
5208
5209 GitHub (22 Mar 2018)
5210 - [Sergei Nikulov brought this change]
5211
5212   travis-ci: enable -Werror for CMake builds (#2418)
5213
5214 - [Sergei Nikulov brought this change]
5215
5216   cmake: avoid warn-as-error during config checks (#2411)
5217   
5218   - Move the CURL_WERROR option processing after the configuration checks
5219     to avoid failures in case of warnings during the configuration checks.
5220   
5221   This is a partial fix for #2358
5222
5223 - [Sergei Nikulov brought this change]
5224
5225   timeval: remove compilation warning by casting (#2417)
5226   
5227   This is fixes #2358
5228
5229 Daniel Stenberg (22 Mar 2018)
5230 - http2: read pending frames (including GOAWAY) in connection-check
5231   
5232   If a connection has received a GOAWAY frame while not being used, the
5233   function now reads frames off the connection before trying to reuse it
5234   to avoid reusing connections the server has told us not to use.
5235   
5236   Reported-by: Alex Baines
5237   Fixes #1967
5238   Closes #2402
5239
5240 - [Bas van Schaik brought this change]
5241
5242   CI: add lgtm.yml for tweaking lgtm.com analysis
5243   
5244   Closes #2414
5245
5246 - CURLINFO_SSL_VERIFYRESULT.3: fix the example, add some text
5247   
5248   Reported-by: Michal Trybus
5249   
5250   Fixes #2400
5251
5252 - TODO: expand ~/ in config files
5253   
5254   Closes #2317
5255
5256 - cookie.d: mention that "-" as filename means stdin
5257   
5258   Reported-by: Dongliang Mu
5259   Fixes #2410
5260
5261 - CURLINFO_COOKIELIST.3: made the example not leak memory
5262   
5263   Reported-by: Muz Dima
5264
5265 - vauth/cleartext: fix integer overflow check
5266   
5267   Make the integer overflow check not rely on the undefined behavior that
5268   a size_t wraps around on overflow.
5269   
5270   Detected by lgtm.com
5271   Closes #2408
5272
5273 - lib/curl_path.h: add #ifdef header guard
5274   
5275   Detected by lgtm.com
5276
5277 - vauth/ntlm.h: fix the #ifdef header guard
5278   
5279   Detected by lgtm.com
5280
5281 Jay Satiro (20 Mar 2018)
5282 - examples/hiperfifo: checksrc compliance
5283
5284 Daniel Stenberg (19 Mar 2018)
5285 - [Nikos Tsipinakis brought this change]
5286
5287   parsedate: support UT timezone
5288   
5289   RFC822 section 5.2 mentions Universal Time, 'UT', to be synonymous with
5290   GMT.
5291   
5292   Closes #2401
5293
5294 - RELEASE-NOTES: synced
5295
5296 - [Don brought this change]
5297
5298   cmake: add support for brotli
5299   
5300   Currently CMake cannot detect Brotli support. This adds detection of the
5301   libraries and associated header files. It also adds this to the
5302   generated config.
5303   
5304   Closes #2392
5305
5306 - [Chris Araman brought this change]
5307
5308   darwinssl: fix iOS build
5309
5310 Patrick Monnerat (18 Mar 2018)
5311 - ILE/RPG binding: Add CURLOPT_HAPROXYPROTOCOL/Fix CURLOPT_DNS_SHUFFLE_ADDRESSES
5312
5313 Daniel Stenberg (17 Mar 2018)
5314 - [Rick Deist brought this change]
5315
5316   resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES
5317   
5318   This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
5319   shuffling of IP addresses returned for a hostname when there is more
5320   than one. This is useful when the application knows that a round robin
5321   approach is appropriate and is willing to accept the consequences of
5322   potentially discarding some preference order returned by the system's
5323   implementation.
5324   
5325   Closes #1694
5326
5327 - add_handle/easy_perform: clear errorbuffer on start if set
5328   
5329   To offer applications a more defined behavior, we clear the buffer as
5330   early as possible.
5331   
5332   Assisted-by: Jay Satiro
5333   
5334   Fixes #2190
5335   Closes #2377
5336
5337 - [Lawrence Matthews brought this change]
5338
5339   CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol
5340   
5341   Add --haproxy-protocol for the command line tool
5342   
5343   Closes #2162
5344
5345 - curl_version_info.3: fix ssl_version description
5346   
5347   Reported-by: Vincas Razma
5348   Fixes #2364
5349
5350 - multi: improved pending transfers handling => improved performance
5351   
5352   When a transfer is requested to get done and it is put in the pending
5353   queue when limited by number of connections, total or per-host, libcurl
5354   would previously very aggressively retry *ALL* pending transfers to get
5355   them transferring. That was very time consuming.
5356   
5357   By reducing the aggressiveness in how pending are being retried, we
5358   waste MUCH less time on putting transfers back into pending again.
5359   
5360   Some test cases got a factor 30(!) speed improvement with this change.
5361   
5362   Reported-by: Cyril B
5363   Fixes #2369
5364   Closes #2383
5365
5366 - pause: when changing pause state, update socket state
5367   
5368   Especially unpausing a transfer might have to move the socket back to the
5369   "currently used sockets" hash to get monitored. Otherwise it would never get
5370   any more data and get stuck. Easily triggered with pausing using the
5371   multi_socket API.
5372   
5373   Reported-by: Philip Prindeville
5374   Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
5375   Fixes #2393
5376   Closes #2391
5377
5378 - [Philip Prindeville brought this change]
5379
5380   examples/hiperfifo.c: improved
5381   
5382    * use member struct event’s instead of pointers to alloc’d struct
5383      events
5384   
5385    * simplify the cases for the mcode_or_die() function via macros;
5386   
5387    * make multi_timer_cb() actually do what the block comment says it
5388      should;
5389   
5390    * accept a “stop” command on the FIFO to shut down the service;
5391   
5392    * use cleaner notation for unused variables than the (void) hack;
5393   
5394    * allow following redirections (304’s);
5395
5396 - rate-limit: use three second window to better handle high speeds
5397   
5398   Due to very frequent updates of the rate limit "window", it could
5399   attempt to rate limit within the same milliseconds and that then made
5400   the calculations wrong, leading to it not behaving correctly on very
5401   fast transfers.
5402   
5403   This new logic updates the rate limit "window" to be no shorter than the
5404   last three seconds and only updating the timestamps for this when
5405   switching between the states TOOFAST/PERFORM.
5406   
5407   Reported-by: 刘佩东
5408   Fixes #2386
5409   Closes #2388
5410
5411 - [luz.paz brought this change]
5412
5413   cleanup: misc typos in strings and comments
5414   
5415   Found via `codespell`
5416   
5417   Closes #2389
5418
5419 - RELEASE-NOTES: toward 7.60.0
5420
5421 - [Kobi Gurkan brought this change]
5422
5423   http2: fixes typo
5424   
5425   Closes #2387
5426
5427 - user-agent.d:: mention --proxy-header as well
5428   
5429   Bug: https://github.com/curl/curl/issues/2381
5430
5431 - transfer: make HTTP without headers count correct body size
5432   
5433   This is what "HTTP/0.9" basically looks like.
5434   
5435   Reported on IRC
5436   
5437   Closes #2382
5438
5439 - test1208: marked flaky
5440   
5441   It fails somewhere between every 3rd to 10th travis-CI run
5442
5443 - SECURITY-PROCESS: mention how we write/add advisories
5444
5445 - [dasimx brought this change]
5446
5447   FTP: fix typo in recursive callback detection for seeking
5448   
5449   Fixes #2380
5450
5451 Version 7.59.0 (13 Mar 2018)
5452
5453 Daniel Stenberg (13 Mar 2018)
5454 - release: 7.59.0
5455
5456 Kamil Dudka (13 Mar 2018)
5457 - tests/.../spnego.py: fix identifier typo
5458   
5459   Detected by Coverity Analysis:
5460   
5461   Error: IDENTIFIER_TYPO:
5462   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
5463   * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
5464   * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
5465   curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
5466   curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
5467   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
5468   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
5469   
5470   Closes #2379
5471
5472 Daniel Stenberg (13 Mar 2018)
5473 - CURLOPT_COOKIEFILE.3: "-" as file name means stdin
5474   
5475   Reported-by: Aron Bergman
5476   Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
5477   
5478   [ci skip]
5479
5480 - Revert "hostip: fix compiler warning: 'variable set but not used'"
5481   
5482   This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
5483   
5484   The assignment really needs to be there or we risk working with an
5485   uninitialized pointer.
5486
5487 Michael Kaufmann (12 Mar 2018)
5488 - limit-rate: fix compiler warning
5489   
5490   follow-up to 72a0f62
5491
5492 Viktor Szakats (12 Mar 2018)
5493 - checksrc.pl: add -i and -m options
5494   
5495   To sync it with changes made for the libssh2 project.
5496   Also cleanup some whitespace.
5497
5498 - curl-openssl.m4: fix spelling [ci skip]
5499
5500 - FAQ: fix a broken URL [ci skip]
5501
5502 Daniel Stenberg (12 Mar 2018)
5503 - http2: mark the connection for close on GOAWAY
5504   
5505   ... don't consider it an error!
5506   
5507   Assisted-by: Jay Satiro
5508   Reported-by: Łukasz Domeradzki
5509   Fixes #2365
5510   Closes #2375
5511
5512 - credits: Viktor prefers without accent
5513
5514 - openldap: white space changes, fixed up the copyright years
5515
5516 - openldap: check ldap_get_attribute_ber() results for NULL before using
5517   
5518   CVE-2018-1000121
5519   Reported-by: Dario Weisser
5520   Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
5521
5522 - FTP: reject path components with control codes
5523   
5524   Refuse to operate when given path components featuring byte values lower
5525   than 32.
5526   
5527   Previously, inserting a %00 sequence early in the directory part when
5528   using the 'singlecwd' ftp method could make curl write a zero byte
5529   outside of the allocated buffer.
5530   
5531   Test case 340 verifies.
5532   
5533   CVE-2018-1000120
5534   Reported-by: Duy Phan Thanh
5535   Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
5536
5537 - readwrite: make sure excess reads don't go beyond buffer end
5538   
5539   CVE-2018-1000122
5540   Bug: https://curl.haxx.se/docs/adv_2018-b047.html
5541   
5542   Detected by OSS-fuzz
5543
5544 - BUGS: updated link to security process
5545
5546 - limit-rate: kick in even before "limit" data has been received
5547   
5548   ... and make sure to avoid integer overflows with really large values.
5549   
5550   Reported-by: 刘佩东
5551   Fixes #2371
5552   Closes #2373
5553
5554 - docs/SECURITY.md -> docs/SECURITY-PROCESS.md
5555
5556 - SECURITY.md: call it the security process
5557
5558 Michael Kaufmann (11 Mar 2018)
5559 - Curl_range: fix FTP-only and FILE-only builds
5560   
5561   follow-up to e04417d
5562
5563 - hostip: fix compiler warning: 'variable set but not used'
5564
5565 Daniel Stenberg (11 Mar 2018)
5566 - HTTP: allow "header;" to replace an internal header with a blank one
5567   
5568   Reported-by: Michael Kaufmann
5569   Fixes #2357
5570   Closes #2362
5571
5572 - http2: verbose output new MAX_CONCURRENT_STREAMS values
5573   
5574   ... as it is interesting for many users.
5575
5576 - SECURITY: distros' max embargo time is 14 days now
5577
5578 Patrick Monnerat (8 Mar 2018)
5579 - curl tool: accept --compressed also if Brotli is enabled and zlib is not.
5580
5581 Daniel Stenberg (5 Mar 2018)
5582 - THANKS + mailmap: remove duplicates, fixup full names
5583
5584 - [sergii.kavunenko brought this change]
5585
5586   WolfSSL: adding TLSv1.3
5587   
5588   Closes #2349
5589
5590 - RELEASE-NOTES/THANKS: synced with cc1d4c505
5591
5592 - [Richard Alcock brought this change]
5593
5594   winbuild: prefer documented zlib library names
5595   
5596   Check for existence of import and static libraries with documented names
5597   and use them if they do. Fallback to previous names.
5598   
5599   According to
5600   https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
5601   Windows, the names of the import library is "zdll.lib" and static
5602   library is "zlib.lib".
5603   
5604   closes #2354
5605
5606 Marcel Raad (4 Mar 2018)
5607 - krb5: use nondeprecated functions
5608   
5609   gss_seal/gss_unseal have been deprecated in favor of
5610   gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
5611   version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
5612   1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
5613   "GSS_Unwrap() (formerly GSS_Unseal())".
5614   
5615   Use the nondeprecated functions to avoid deprecation warnings.
5616   
5617   [1] https://tools.ietf.org/html/rfc2078
5618   [2] https://tools.ietf.org/html/rfc1964
5619   
5620   Closes https://github.com/curl/curl/pull/2356
5621
5622 Daniel Stenberg (4 Mar 2018)
5623 - curl.1: mention how to add numerical IP addresses in NO_PROXY
5624
5625 - CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
5626
5627 - NO_PROXY: fix for IPv6 numericals in the URL
5628   
5629   Added test 1265 that verifies.
5630   
5631   Reported-by: steelman on github
5632   Fixes #2353
5633   Closes #2355
5634
5635 - build: get CFLAGS (including -werror) used for examples and tests
5636   
5637   ... so that the CI and more detects compiler warnings/errors properly!
5638   
5639   Closes #2337
5640
5641 Marcel Raad (3 Mar 2018)
5642 - curl_ctype: fix macro redefinition warnings
5643   
5644   On MinGW and Cygwin, GCC and clang have been complaining about macro
5645   redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
5646   by undefining the macros before redefining them as suggested in
5647   https://github.com/curl/curl/pull/2269.
5648   
5649   Suggested-by: Daniel Stenberg
5650
5651 Dan Fandrich (2 Mar 2018)
5652 - unit1307: proper cleanup on OOM to fix torture tests
5653
5654 Marcel Raad (28 Feb 2018)
5655 - unit1309: fix warning on Windows x64
5656   
5657   When targeting x64, MinGW-w64 complains about conversions between
5658   32-bit long and 64-bit pointers. Fix this by reusing the
5659   GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
5660   from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
5661   CURLX_INTEGER_TO_POINTER_CAST.
5662   
5663   Closes https://github.com/curl/curl/pull/2341
5664
5665 - travis: update compiler versions
5666   
5667   Update clang to version 3.9 and GCC to version 6.
5668   
5669   Closes https://github.com/curl/curl/pull/2345
5670
5671 Daniel Stenberg (26 Feb 2018)
5672 - docs/MANUAL: formfind.pl is not accessible on the site anymore
5673   
5674   Fixes #2342
5675
5676 Jay Satiro (24 Feb 2018)
5677 - curl-openssl.m4: Fix version check for OpenSSL 1.1.1
5678   
5679   - Add OpenSSL 1.1.1 to the header/library version lists.
5680   
5681   - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
5682     which was added in that version.
5683   
5684   Prior to this change an erroneous header/library mismatch was caused by
5685   lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
5686
5687 Viktor Szakats (23 Feb 2018)
5688 - lib655: silence compiler warning
5689   
5690   Closes https://github.com/curl/curl/pull/2335
5691
5692 - spelling fixes
5693   
5694   Detected using the `codespell` tool.
5695   
5696   Also contains one URL protocol upgrade.
5697   
5698   Closes https://github.com/curl/curl/pull/2334
5699
5700 Daniel Stenberg (24 Feb 2018)
5701 - projects/README: remove reference to dead IDN link/package
5702   
5703   Reported-by: Stefan Kanthak and Rod Widdowson
5704   
5705   Fixes #2325
5706
5707 Jay Satiro (23 Feb 2018)
5708 - [Rod Widdowson brought this change]
5709
5710   winbuild: Use macros for the names of some build utilities
5711   
5712   - Add macros to the top of the makefile for rc and mt utilities so that
5713     it is easier to change their locations.
5714   
5715   Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
5716   Reported-by: Stefan Kanthak
5717   
5718   Closes https://github.com/curl/curl/issues/2329
5719
5720 Daniel Stenberg (23 Feb 2018)
5721 - TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
5722
5723 - curl_share_setopt.3: connection cache is shared within multi handles
5724
5725 Jay Satiro (22 Feb 2018)
5726 - [Rod Widdowson brought this change]
5727
5728   winbuild: Use CALL to run batch scripts
5729   
5730   Co-authored-by: Stefan Kanthak
5731   
5732   Closes https://github.com/curl/curl/issues/2330
5733   Closes https://github.com/curl/curl/pull/2331
5734
5735 Patrick Monnerat (22 Feb 2018)
5736 - os400: add curl_resolver_start_callback type to ILE/RPG binding
5737
5738 Daniel Stenberg (22 Feb 2018)
5739 - form.d: rephrased somewhat, added two example command lines
5740
5741 Jay Satiro (21 Feb 2018)
5742 - [Francisco Sedano brought this change]
5743
5744   url: Add option CURLOPT_RESOLVER_START_FUNCTION
5745   
5746   - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
5747     will be called every time before a new resolve request is started
5748     (ie before a host is resolved) with a pointer to backend-specific
5749     resolver data. Currently this is only useful for ares.
5750   
5751   - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
5752     pass to the resolver start callback.
5753   
5754   Closes https://github.com/curl/curl/pull/2311
5755
5756 - lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
5757   
5758   - In keeping with the naming of our other connect timeout options rename
5759     CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
5760   
5761   This change adds the _MS suffix since the option expects milliseconds.
5762   This is more intuitive for our users since other connect timeout options
5763   that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
5764   CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
5765   
5766   The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
5767   
5768   Follow-up to 2427d94 which added the lib and tool option yesterday.
5769   
5770   Ref: https://github.com/curl/curl/pull/2260
5771
5772 Patrick Monnerat (21 Feb 2018)
5773 - sasl: prefer PLAIN mechanism over LOGIN
5774   
5775   SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
5776   PLAIN should be used instead if available.
5777
5778 Daniel Stenberg (21 Feb 2018)
5779 - RELEASE-NOTES: synced with 2427d94c6
5780
5781 Jay Satiro (20 Feb 2018)
5782 - [Anders Bakken brought this change]
5783
5784   url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
5785   
5786   - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
5787     eyeball timeout value.
5788   
5789   - Add new optval macro CURL_HET_DEFAULT to represent the default happy
5790     eyeballs timeout value (currently 200 ms).
5791   
5792   - Add new tool option --happy-eyeballs-timeout-ms to expose
5793     CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
5794     other -timeout options in the tool expect seconds not milliseconds.
5795   
5796   Closes https://github.com/curl/curl/pull/2260
5797
5798 - hostip: fix 'potentially uninitialized variable' warning
5799   
5800   Follow-up to 50d1b33.
5801   
5802   Caught by AppVeyor.
5803
5804 Daniel Stenberg (20 Feb 2018)
5805 - TODO: warning if curl version is not in sync with libcurl version
5806
5807 Jay Satiro (20 Feb 2018)
5808 - [Anders Bakken brought this change]
5809
5810   CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
5811   
5812   This enables users to preresolve but still take advantage of happy
5813   eyeballs and trying multiple addresses if some are not connecting.
5814   
5815   Ref: https://github.com/curl/curl/pull/2260
5816
5817 Daniel Stenberg (20 Feb 2018)
5818 - [Sergio Borghese brought this change]
5819
5820   examples/sftpuploadresume: resume upload via CURLOPT_APPEND
5821   
5822   URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
5823
5824 - curl --version: show PSL if the run-time lib has it enabled
5825   
5826   ... not of the #define was set at build-time!
5827
5828 - TODO: "Support in-memory certs/ca certs/keys"
5829   
5830   removed SSLKEYLOGFILE support (fixed)
5831   
5832   removed "consider SSL patches" (outdated)
5833   
5834   Closes #2310
5835
5836 - CURLOPT_HEADER.3: clarify problems with different data sizes
5837
5838 - test1556: verify >16KB headers to the header callback
5839
5840 - header callback: don't chop headers into smaller pieces
5841   
5842   Reported-by: Guido Berhoerster
5843   Fixes #2314
5844   Closes #2316
5845
5846 - test1154: verify that long HTTP headers get rejected
5847
5848 - http: fix the max header length detection logic
5849   
5850   Previously, it would only check for max length if the existing alloc
5851   buffer was to small to fit it, which often would make the header still
5852   get used.
5853   
5854   Reported-by: Guido Berhoerster
5855   Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
5856   
5857   Closes #2315
5858
5859 - CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
5860   
5861   Reported-by: Erik Johansson
5862   Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
5863
5864 - CURLOPT_HEADERFUNCTION.3: mention folded headers
5865
5866 - TODO: 1.1 Option to refuse usernames in URLs
5867   
5868   Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
5869
5870 - TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
5871
5872 - ssh: add two missing state names
5873   
5874   The list of state names (used in debug builds) was out of sync in
5875   relation to the list of states (used in all builds).
5876   
5877   I now added an assert to make sure the sizes of the two lists match, to
5878   aid in detecting this mistake better in the future.
5879   
5880   Regression since c92d2e14cf, shipped in 7.58.0.
5881   
5882   Reported-by: Somnath Kundu
5883   
5884   Fixes #2312
5885   Closes #2313
5886
5887 - Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
5888   
5889   This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
5890   
5891   Reported-by: Jay Satiro
5892
5893 Jay Satiro (15 Feb 2018)
5894 - non-ascii: fix implicit declaration warning
5895   
5896   Follow-up to b46cfbc.
5897   
5898   Caught by Travis CI.
5899
5900 Daniel Stenberg (15 Feb 2018)
5901 - travis: add build with iconv enabled
5902   
5903   ... to verify it builds and works fine.
5904   
5905   Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
5906   
5907   Closes #1872
5908
5909 - TODO: 18.18 retry on network is unreachable
5910   
5911   Closes #1603
5912
5913 - KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
5914   
5915   Closes #1254
5916
5917 Kamil Dudka (15 Feb 2018)
5918 - nss: use PK11_CreateManagedGenericObject() if available
5919   
5920   ... so that the memory allocated by applications using libcurl does not
5921   grow per each TLS connection.
5922   
5923   Bug: https://bugzilla.redhat.com/1510247
5924   
5925   Closes #2297
5926
5927 Daniel Stenberg (15 Feb 2018)
5928 - [Björn Stenberg brought this change]
5929
5930   TODO fixed: Detect when called from within callbacks
5931   
5932   Closes #2302
5933
5934 - BINDINGS: fix curb link (and remove ruby-curl-multi)
5935   
5936   Reported-by: Klaus Stein
5937
5938 - curl_gssapi: make sure this file too uses our *printf()
5939
5940 - libcurl-security.3: separate file:// section
5941   
5942   ... just to make it more apparent. Even if it repeats
5943   some pieces of information.
5944
5945 - libcurl-security.3: the http://192.168.0.1/my_router_config case
5946   
5947   Mentioned-By: Rich Moore
5948
5949 - libcurl-security.3: mention the URL standards problems too
5950
5951 - libcurl-security.3: split out from libcurl-tutorial.3
5952   
5953   To make more accessible.
5954   
5955   Merged in some new language from "URLs are dangerous things" as discussed on
5956   the mailing list a few days ago:
5957   
5958   Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
5959
5960 - RELEASE-NOTES: synced with e551910f8
5961
5962 Patrick Monnerat (13 Feb 2018)
5963 - tests: new tests for http raw mode
5964   
5965   Test 319 checks proper raw mode data with non-chunked gzip
5966   transfer-encoded server data.
5967   Test 326 checks raw mode with chunked server data.
5968   
5969   Bug: #2303
5970   Closes #2308
5971
5972 Kamil Dudka (12 Feb 2018)
5973 - tlsauthtype.d: works only if libcurl is built with TLS-SRP support
5974   
5975   Bug: https://bugzilla.redhat.com/1542256
5976   
5977   Closes #2306
5978
5979 Patrick Monnerat (12 Feb 2018)
5980 - smtp: fix processing of initial dot in data
5981   
5982   RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
5983   should be taken into account when chasing the <CRLF>.<CRLF> end marker.
5984   Thus a leading dot character in data is also subject to escaping.
5985   
5986   Tests 911 and test server are adapted to this situation.
5987   New tests 951 and 952 check proper handling of initial dot in data.
5988   
5989   Closes #2304
5990
5991 Daniel Stenberg (12 Feb 2018)
5992 - sha256: avoid redefine
5993
5994 - [Douglas Mencken brought this change]
5995
5996   sha256: build with OpenSSL < 0.9.8 too
5997   
5998   support for SHA-2 was introduced in OpenSSL 0.9.8
5999   
6000   Closes #2305
6001
6002 - [Bruno Grasselli brought this change]
6003
6004   README: language fix
6005   
6006   s/off/from
6007   
6008   Closes #2300
6009
6010 Patrick Monnerat (12 Feb 2018)
6011 - http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
6012   
6013   Bug: #2303
6014   Reported-By: Henry Roeland
6015
6016 Daniel Stenberg (9 Feb 2018)
6017 - get_posix_time: only check for overflows if they can happen!
6018
6019 Michael Kaufmann (9 Feb 2018)
6020 - schannel: fix "no previous prototype" compiler warning
6021
6022 Jay Satiro (9 Feb 2018)
6023 - [Mohammad AlSaleh brought this change]
6024
6025   content_encoding: Add "none" alias to "identity"
6026   
6027   Some servers return a "content-encoding" header with a non-standard
6028   "none" value.
6029   
6030   Add "none" as an alias to "identity" as a work-around, to avoid
6031   unrecognised content encoding type errors.
6032   
6033   Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
6034   
6035   Closes https://github.com/curl/curl/pull/2298
6036
6037 Steve Holme (8 Feb 2018)
6038 - build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
6039
6040 - build-openssl.bat: Fixed incorrect move if destination build folder exists
6041
6042 Michael Kaufmann (8 Feb 2018)
6043 - schannel: fix compiler warnings
6044   
6045   Closes #2296
6046
6047 Steve Holme (7 Feb 2018)
6048 - curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
6049   
6050   Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
6051   Added the necessary include file to curl_addrinfo.c.
6052   
6053   Note: The SDK (which is considered beta) has to be installed, VS 2017
6054   project file has to be re-targeted for Windows 10.0.17061 and #define
6055   enabled in config-win32.h.
6056
6057 Patrick Monnerat (7 Feb 2018)
6058 - fnmatch: optimize processing of consecutive *s and ?s pattern characters
6059   
6060   Reported-By: Daniel Stenberg
6061   Fixes #2291
6062   Closes #2293
6063
6064 Steve Holme (6 Feb 2018)
6065 - build-openssl.bat/build-wolfssl.bat: Build platform is optional
6066   
6067   Whilst the compiler parameter is mandatory, platform is optional as it
6068   is automatically calculated by the :configure section.
6069   
6070   This partially reverts commit 6d62d2c55d.
6071
6072 Daniel Stenberg (6 Feb 2018)
6073 - [Patrick Schlangen brought this change]
6074
6075   openssl: Don't add verify locations when verifypeer==0
6076   
6077   When peer verification is disabled, calling
6078   SSL_CTX_load_verify_locations is not necessary. Only call it when
6079   verification is enabled to save resources and increase performance.
6080   
6081   Closes #2290
6082
6083 Steve Holme (5 Feb 2018)
6084 - build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
6085   
6086   ...and not just the Community Edition.
6087
6088 - build-openssl.bat: Extend VC15 support to include Enterprise and Professional
6089   
6090   ...and not just the Community Edition.
6091
6092 Michael Kaufmann (5 Feb 2018)
6093 - time-cond: fix reading the file modification time on Windows
6094   
6095   On Windows, stat() may adjust the unix file time by a daylight saving time
6096   offset. Avoid this by calling GetFileTime() instead.
6097   
6098   Fixes #2164
6099   Closes #2204
6100
6101 Daniel Stenberg (5 Feb 2018)
6102 - formdata: use the mime-content type function
6103   
6104   Reduce code duplication by making Curl_mime_contenttype available and
6105   used by the formdata function. This also makes the formdata function
6106   recognize a set of more file extensions by default.
6107   
6108   PR #2280 brought this to my attention.
6109   
6110   Closes #2282
6111
6112 - getdate: return -1 for out of range
6113   
6114   ...as that's how the function is documented to work.
6115   
6116   Reported-by: Michael Kaufmann
6117   Bug found in an autobuild with 32 bit time_t
6118   
6119   Closes #2278
6120
6121 - [Ben Greear brought this change]
6122
6123   build: fix termios issue on android cross-compile
6124   
6125   Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
6126   Signed-off-by: Ben Greear <greearb@candelatech.com>
6127
6128 - time_t-fixes: remove typecasts to 'long' for info.filetime
6129   
6130   They're now wrong.
6131   
6132   Reported-by: Michael Kaufmann
6133   
6134   Closes #2277
6135
6136 - curl_setup: move the precautionary define of SIZEOF_TIME_T
6137   
6138   ... up to before it may be used for the TIME_T_MAX/MIN logic.
6139   
6140   Reported-by: Michael Kaufmann
6141
6142 - parsedate: s/#if/#ifdef
6143   
6144   Reported-by: Michael Kaufmann
6145   Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
6146
6147 Patrick Monnerat (31 Jan 2018)
6148 - fnmatch: pattern syntax can no longer fail
6149   
6150   Whenever an expected pattern syntax rule cannot be matched, the
6151   character starting the rule loses its special meaning and the parsing
6152   is resumed:
6153   - backslash at the end of pattern string matches itself.
6154   - Error in [:keyword:] results in set containing :\[dekorwy.
6155   
6156   Unit test 1307 updated for this new situation.
6157   
6158   Closes #2273
6159
6160 - fnmatch: accept an alphanum to be followed by a non-alphanum in char set
6161   
6162   Also be more tolerant about set pattern syntax.
6163   Update unit test 1307 accordingly.
6164   
6165   Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
6166
6167 - fnmatch: do not match the empty string with a character set
6168
6169 Jay Satiro (30 Jan 2018)
6170 - build: fix windows build methods for curl_ctype.c
6171   
6172   - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
6173     curlx files since they are required by both src and lib.
6174   
6175   Follow-up to 4272a0b which added curl_ctype.
6176
6177 Daniel Stenberg (30 Jan 2018)
6178 - progress-bar.d: update to match implementation
6179   
6180   ... since commit 993dd5651a6
6181   
6182   Reported-by: Martin Dreher
6183   Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
6184   
6185   Closes #2271
6186
6187 - http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
6188   
6189   ... instead of doing it unconditionally in debug builds. It cluttered up
6190   the output a little too much.
6191
6192 - [Max Dymond brought this change]
6193
6194   file: Check the return code from Curl_range and bail out on error
6195
6196 - [Max Dymond brought this change]
6197
6198   Curl_range: add check to ensure "from <= to"
6199
6200 - [Max Dymond brought this change]
6201
6202   Curl_range: commonize FTP and FILE range handling
6203   
6204   Closes #2205
6205
6206 - RELEASE-NOTES: synced with 811beab9f
6207
6208 - curlver: next release will be 7.59.0
6209
6210 - [Michał Janiszewski brought this change]
6211
6212   curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
6213   
6214   Closes #2275
6215
6216 - time: support > year 2038 time stamps for system with 32bit long
6217   
6218   ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
6219   CURLINFO_FILETIME_T.
6220   
6221   Fixes #2238
6222   Closes #2264
6223
6224 - curl_easy_reset: clear digest auth state
6225   
6226   Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
6227   Reported-by: Ruurd Beerstra
6228   Fixes #2255
6229   Closes #2272
6230
6231 - [Adam Marcionek brought this change]
6232
6233   winbuild: make linker generate proper PDB
6234   
6235   Link.exe requires /DEBUG to properly generate a full pdb file on release
6236   builds.
6237   
6238   Closes #2274
6239
6240 - curl: add --proxy-pinnedpubkey
6241   
6242   To verify a proxy's public key. For when using HTTPS proxies.
6243   
6244   Fixes #2192
6245   Closes #2268
6246
6247 - configure: set PATH_SEPARATOR to colon for PATH w/o separator
6248   
6249   The logic tries to figure out what the path separator in the $PATH
6250   variable is, but if there's only one directory in the $PATH it
6251   fails. This change make configure *guess* on colon instead of erroring
6252   out, simply because that is probably the more common character.
6253   
6254   PATH_SEPARATOR can always be set by the user to override the guessing.
6255   
6256   (tricky bug to reproduce, as in my case for example the configure script
6257   requires binaries in more than one directory so passing in a PATH with a
6258   single dir fails.)
6259   
6260   Reported-by: Earnestly on github
6261   Fixes #2202
6262   Closes #2265
6263
6264 - curl_ctype: private is*() type macros and functions
6265   
6266   ... since the libc provided one are locale dependent in a way we don't
6267   want. Also, the "native" isalnum() (for example) works differently on
6268   different platforms which caused test 1307 failures on macos only.
6269   
6270   Closes #2269
6271
6272 Marcel Raad (29 Jan 2018)
6273 - build: open VC15 projects with VS 2017
6274   
6275   Previously, they were opened with Visual Studio 2015 by default, which
6276   cannot build them.
6277
6278 Daniel Stenberg (29 Jan 2018)
6279 - RELEASE-NOTES: synced with 094647fca
6280
6281 - TODO: UTF-8 filenames in Content-Disposition
6282   
6283   Closes #1888
6284
6285 - KNOWN_BUGS: DICT responses show the underlying protocol
6286   
6287   Closes #1809
6288
6289 Jay Satiro (27 Jan 2018)
6290 - [Alessandro Ghedini brought this change]
6291
6292   docs: fix typos in man pages
6293   
6294   Closes https://github.com/curl/curl/pull/2266
6295
6296 Patrick Monnerat (26 Jan 2018)
6297 - lib555: drop text conversion and encode data as ascii codes
6298   
6299   If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
6300   giving a result that is different from what is expected.
6301   This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
6302   to upload in ascii.
6303   
6304   Bug: https://github.com/curl/curl/pull/1872
6305
6306 Daniel Stenberg (26 Jan 2018)
6307 - lib517: make variable static to avoid compiler warning
6308   
6309   ... with clang on macos
6310
6311 Patrick Monnerat (26 Jan 2018)
6312 - lib544: sync ascii code data with textual data
6313   
6314   Data mismatch caused test 545 to fail when character encoding
6315   conversion is enabled.
6316   
6317   Bug: https://github.com/curl/curl/pull/1872
6318
6319 Daniel Stenberg (25 Jan 2018)
6320 - [Travis Burtrum brought this change]
6321
6322   GSKit: restore pinnedpubkey functionality
6323   
6324   inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
6325   
6326   Closes #2263
6327
6328 - [Dair Grant brought this change]
6329
6330   darwinssl: Don't import client certificates into Keychain on macOS
6331   
6332   Closes #2085
6333
6334 - configure: fix the check for unsigned time_t
6335   
6336   Assign the time_t variable negative value and then check if it is
6337   greater than zero, which will evaluate true for unsigned time_t but
6338   false for signed time_t.
6339
6340 - parsedate: fix date parsing for systems with 32 bit long
6341   
6342   Make curl_getdate() handle dates before 1970 as well (returning negative
6343   values).
6344   
6345   Make test 517 test dates for 64 bit time_t.
6346   
6347   This fixes bug (3) mentioned in #2238
6348   
6349   Closes #2250
6350
6351 - [McDonough, Tim brought this change]
6352
6353   openssl: fix pinned public key build error in FIPS mode
6354   
6355   Here is a version that should work with all versions of openssl 0.9.7
6356   through 1.1.0.
6357   
6358   Links to the docs:
6359   https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
6360   https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
6361   
6362   At the very bottom of the 1.1.0 documentation there is a history section
6363   that states, " stack allocated EVP_MD_CTXs are no longer supported."
6364   
6365   If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
6366   simple mapping can be used as described here:
6367   https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
6368   
6369   Closes #2258
6370
6371 - [Travis Burtrum brought this change]
6372
6373   SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
6374
6375 - [Travis Burtrum brought this change]
6376
6377   SChannel/WinSSL: Implement public key pinning
6378   
6379   Closes #1429
6380
6381 - bump: towards 7.58.1
6382
6383 - cookies: remove verbose "cookie size:" output
6384   
6385   It was once used for some debugging/verifying logic but should never have
6386   ended up in git!
6387
6388 - TODO: hardcode the "localhost" addresses
6389
6390 - TODO: CURL_REFUSE_CLEARTEXT
6391   
6392   An idea that popped up in discussions on twitter.
6393
6394 - progress-bar: don't use stderr explicitly, use bar->out
6395   
6396   Reported-By: Gisle Vanem
6397   Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
6398
6399 GitHub (24 Jan 2018)
6400 - [Gisle Vanem brought this change]
6401
6402   Fixes for MSDOS etc.
6403   
6404   djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
6405   But djgpp seems the only choice for MSDOS anyway.
6406   
6407   PellesC do have a 'F_OK' defined in it's <unistd.h>.
6408   
6409   Update year in Copyright.
6410
6411 - [Gisle Vanem brought this change]
6412
6413   Fix small typo.
6414
6415 Version 7.58.0 (23 Jan 2018)
6416
6417 Daniel Stenberg (23 Jan 2018)
6418 - RELEASE: 7.58.0
6419
6420 - [Gisle Vanem brought this change]
6421
6422   progress-bar: get screen width on windows
6423
6424 - test1454: --connect-to with IPv6 address w/o IPv6 support!
6425
6426 - CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
6427   
6428   Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
6429   Reported-by: John Hascall
6430   
6431   Closes #2257
6432
6433 - docs: fix man page syntax to make test 1140 OK again
6434
6435 - http: prevent custom Authorization headers in redirects
6436   
6437   ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
6438   curl already handles Authorization headers created internally.
6439   
6440   Note: this changes behavior slightly, for the sake of reducing mistakes.
6441   
6442   Added test 317 and 318 to verify.
6443   
6444   Reported-by: Craig de Stigter
6445   Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
6446
6447 - curl: progress bar refresh, get width using ioctl()
6448   
6449   Get screen width from the environment variable COLUMNS first, if set. If
6450   not, use ioctl(). If nether works, assume 79.
6451   
6452   Closes #2242
6453   
6454   The "refresh" is for the -# output when no total transfer size is
6455   known. It will now only use a single updated line even for this case:
6456   
6457   The "-=O=-" ship moves when data is transferred. The four flying
6458   "hashes" move (on a sine wave) on each refresh, independent of data.
6459
6460 - RELEASE-NOTES: synced with bb0ffcc36
6461
6462 - libcurl-env.3: first take
6463
6464 - TODO: two possible name resolver improvements
6465
6466 - [Kartik Mahajan brought this change]
6467
6468   http2: don't close connection when single transfer is stopped
6469   
6470   Fixes #2237
6471   Closes #2249
6472
6473 - test558: fix for multissl builds
6474   
6475   vtls.c:multissl_init() might do a curl_free() call so strip that out to
6476   make this work with more builds. We just want to verify that
6477   memorytracking works so skipping one line is no harm.
6478
6479 - examples/url2file.c: add missing curl_global_cleanup() call
6480   
6481   Reported-by: XhstormR on github
6482   Fixes #2245
6483
6484 - [Michael Gmelin brought this change]
6485
6486   SSH: Fix state machine for ssh-agent authentication
6487   
6488   In case an identity didn't match[0], the state machine would fail in
6489   state SSH_AUTH_AGENT instead of progressing to the next identity in
6490   ssh-agent. As a result, ssh-agent authentication only worked if the
6491   identity required happened to be the first added to ssh-agent.
6492   
6493   This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
6494   stated that the "else" statement was required to prevent getting stuck
6495   in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
6496   interface I couldn't see how this could happen or reproduce it and I
6497   also couldn't find a more detailed description of the problem which
6498   would explain a test case to reproduce the problem this was supposed to
6499   fix.
6500   
6501   [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
6502   
6503   Closes #2248
6504
6505 - openssl: fix potential memory leak in SSLKEYLOGFILE logic
6506   
6507   Coverity CID 1427646.
6508
6509 - openssl: fix the libressl build again
6510   
6511   Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
6512   late OpenSSL version...
6513   
6514   Fixes #2246
6515   Closes #2247
6516   
6517   Reported-by: jungle-boogie on github
6518
6519 - unit1307: test many wildcards too
6520
6521 - curl_fnmatch: only allow 5 '*' sections in a single pattern
6522   
6523   ... to avoid excessive recursive calls. The number 5 is totally
6524   arbitrary and could be modified if someone has a good motivation.
6525
6526 - ftp-wildcard: fix matching an empty string with "*[^a]"
6527   
6528   .... and avoid advancing the pointer to trigger an out of buffer read.
6529   
6530   Detected by OSS-fuzz
6531   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
6532   Assisted-by: Max Dymond
6533
6534 - SMB: fix numeric constant suffix and variable types
6535   
6536   1. don't use "ULL" suffix since unsupported in older MSVC
6537   2. use curl_off_t instead of custom long long ifdefs
6538   3. make get_posix_time() not do unaligned data access
6539   
6540   Fixes #2211
6541   Closes #2240
6542   Reported-by: Chester Liu
6543
6544 - [rouzier brought this change]
6545
6546   CURLOPT_TCP_NODELAY.3: fix typo
6547   
6548   Closes #2239
6549
6550 - smtp/pop3/imap_get_message: decrease the data length too...
6551   
6552   Follow-up commit to 615edc1f73 which was incomplete.
6553   
6554   Assisted-by: Max Dymond
6555   Detected by OSS-fuzz
6556   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
6557
6558 - openssl: enable SSLKEYLOGFILE support by default
6559   
6560   Fixes #2210
6561   Closes #2236
6562
6563 Patrick Monnerat (14 Jan 2018)
6564 - mime: clone mime tree upon easy handle duplication.
6565   
6566   A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
6567   strongly bound to the handle: there is a pointer to the easy handle in
6568   each item of the mime tree and following the parent pointer list
6569   of mime items ends in a dummy part stored within the handle.
6570   
6571   Because of this binding, a mime tree cannot be shared between different
6572   easy handles, thus it needs to be cloned upon easy handle duplication.
6573   
6574   There is no way for the caller to get the duplicated mime tree
6575   handle: it is then set to be automatically destroyed upon freeing the
6576   new easy handle.
6577   
6578   New test 654 checks proper mime structure duplication/release.
6579   
6580   Add a warning note in curl_mime_data_cb() documentation about sharing
6581   user data between duplicated handles.
6582   
6583   Closes #2235
6584
6585 - docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
6586
6587 Daniel Stenberg (13 Jan 2018)
6588 - test395: HTTP with overflow Content-Length value
6589
6590 - test394: verify abort of rubbish in Content-Length: value
6591
6592 - test393: verify --max-filesize with excessive Content-Length
6593
6594 - HTTP: bail out on negative Content-Length: values
6595   
6596   ... and make the max filesize check trigger if the value is too big.
6597   
6598   Updates test 178.
6599   
6600   Reported-by: Brad Spencer
6601   Fixes #2212
6602   Closes #2223
6603
6604 Marcel Raad (13 Jan 2018)
6605 - [Dan Johnson brought this change]
6606
6607   configure.ac: append extra linker flags instead of prepending them.
6608   
6609   Link order should list libraries after the libraries that use them,
6610   so when we're guessing that we might also need to add -ldl in order
6611   to use -lssl, we should add -ldl after -lssl.
6612   
6613   Closes https://github.com/curl/curl/pull/2234
6614
6615 Daniel Stenberg (13 Jan 2018)
6616 - RELEASE-NOTES: synced with 6fa10c8fa
6617
6618 Jay Satiro (13 Jan 2018)
6619 - setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
6620   
6621   Broken since f121575 (precedes 7.56.1).
6622   
6623   Bug: https://github.com/curl/curl/issues/2225
6624   Reported-by: cmfrolick@users.noreply.github.com
6625   
6626   Closes https://github.com/curl/curl/pull/2227
6627
6628 Patrick Monnerat (13 Jan 2018)
6629 - setopt: reintroduce non-static Curl_vsetopt() for OS400 support
6630   
6631   This also upgrades ILE/RPG bindings with latest setopt options.
6632   
6633   Reported-By: jonrumsey on github
6634   Fixes #2230
6635   Closes #2233
6636
6637 Jay Satiro (11 Jan 2018)
6638 - [Zhouyihai Ding brought this change]
6639
6640   http2: fix incorrect trailer buffer size
6641   
6642   Prior to this change the stored byte count of each trailer was
6643   miscalculated and 1 less than required. It appears any trailer
6644   after the first that was passed to Curl_client_write would be truncated
6645   or corrupted as well as the size. Potentially the size of some
6646   subsequent trailer could be erroneously extracted from the contents of
6647   that trailer, and since that size is used by client write an
6648   out-of-bounds read could occur and cause a crash or be otherwise
6649   processed by client write.
6650   
6651   The bug appears to have been born in 0761a51 (precedes 7.49.0).
6652   
6653   Closes https://github.com/curl/curl/pull/2231
6654
6655 - [Basuke Suzuki brought this change]
6656
6657   easy: fix connection ownership in curl_easy_pause
6658   
6659   Before calling Curl_client_chop_write(), change the owner of connection
6660   to the current Curl_easy handle. This will fix the issue #2217.
6661   
6662   Fixes https://github.com/curl/curl/issues/2217
6663   Closes https://github.com/curl/curl/pull/2221
6664
6665 Daniel Stenberg (9 Jan 2018)
6666 - [Dimitrios Apostolou brought this change]
6667
6668   system.h: Additionally check __LONG_MAX__ for defining curl_off_t
6669   
6670   __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
6671   in GCC 3.3.
6672   
6673   Closes #2216
6674
6675 - COPYING: it's 2018!
6676
6677 - progress: calculate transfer speed on milliseconds if possible
6678   
6679   to increase accuracy for quick transfers
6680   
6681   Fixes #2200
6682   Closes #2206
6683
6684 Jay Satiro (7 Jan 2018)
6685 - scripts: allow all perl scripts to be run directly
6686   
6687   - Enable execute permission (chmod +x)
6688   
6689   - Change interpreter to /usr/bin/env perl
6690   
6691   Closes https://github.com/curl/curl/pull/2222
6692
6693 - mail-rcpt.d: fix short-text description
6694
6695 - build: remove HAVE_LIMITS_H check
6696   
6697   .. because limits.h presence isn't optional, it's required by C89.
6698   
6699   Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
6700   
6701   Closes https://github.com/curl/curl/pull/2215
6702
6703 - openssl: fix memory leak of SSLKEYLOGFILE filename
6704   
6705   - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
6706     initialization.
6707   
6708   Caught by ASAN.
6709
6710 - Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
6711   
6712   This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
6713   
6714   SIZEOF_LONG should not be checked in system.h since that macro is only
6715   defined when building libcurl.
6716   
6717   Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
6718   Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
6719
6720 Michael Kaufmann (30 Dec 2017)
6721 - test1554: improve the error handling
6722
6723 - test1554: add global initialization and cleanup
6724
6725 Daniel Stenberg (29 Dec 2017)
6726 - curl_version_info.3: call the argument 'age'
6727   
6728   Reported-by: Pete Lomax
6729   Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
6730
6731 Patrick Monnerat (27 Dec 2017)
6732 - [Mikalai Ananenka brought this change]
6733
6734   brotli: data at the end of content can be lost
6735   
6736   Decoding loop implementation did not concern the case when all
6737   received data is consumed by Brotli decoder and the size of decoded
6738   data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
6739   For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
6740   can result in the loss of data at the end of content.
6741   
6742   Closes #2194
6743
6744 Jay Satiro (26 Dec 2017)
6745 - examples/cacertinmem: ignore cert-already-exists error
6746   
6747   - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
6748     since it's possible the cert may have already been loaded by libcurl.
6749   
6750   - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
6751     Instead have it direct the reader to this cacertinmem.c example.
6752   
6753   - Fix the CA certificate to use the right CA for example.com, Digicert.
6754   
6755   Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
6756   Reported-by: Thomas van Hesteren
6757   
6758   Closes https://github.com/curl/curl/pull/2182
6759
6760 - [Gisle Vanem brought this change]
6761
6762   tool_getparam: Support size modifiers for --max-filesize
6763   
6764   - Move the size modifier detection code from limit-rate to its own
6765     function so that it can also be used with max-filesize.
6766   
6767   Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
6768   
6769   For example --max-filesize 1G
6770   
6771   Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
6772   
6773   Closes https://github.com/curl/curl/pull/2179
6774
6775 Steve Holme (22 Dec 2017)
6776 - build: Fixed incorrect script termination from commit ad1dc10e61
6777
6778 - Makefile.vc: Added our standard copyright header
6779
6780 - winbuild: Added support for VC15
6781
6782 - build: Added Visual Studio 2017 project files
6783
6784 - build-wolfssl.bat: Added support for VC15
6785
6786 - build-openssl.bat: Added support for VC15
6787
6788 Jay Satiro (22 Dec 2017)
6789 - [Dimitrios Apostolou brought this change]
6790
6791   curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
6792   
6793   Closes https://github.com/curl/curl/pull/2186
6794
6795 - [Mattias Fornander brought this change]
6796
6797   examples/rtsp: fix error handling macros
6798   
6799   Closes https://github.com/curl/curl/pull/2185
6800
6801 Patrick Monnerat (20 Dec 2017)
6802 - curl_easy_reset: release mime-related data.
6803   
6804   Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
6805   functions dealing with UserDefined structure contents.
6806   This avoids memory leakages on curl-generated part mime headers.
6807   New test 2073 checks this using the cli tool --next option: it
6808   triggers a valgrind error if bug is present.
6809   
6810   Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
6811   Reported-by: Martin Galvan
6812
6813 - content_encoding: rework zlib_inflate
6814   
6815   - When zlib version is < 1.2.0.4, process gzip trailer before considering
6816   extra data as an error.
6817   - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
6818   and minimize corrupt data output.
6819   - Do not try to restart deflate decompression in raw mode if output has
6820   started or if the leading data is not available anymore.
6821   - New test 232 checks inflating raw-deflated content.
6822   
6823   Closes #2068
6824
6825 - brotli: allow compiling with version 0.6.0.
6826   
6827   Some error codes were not yet defined in brotli 0.6.0: do not issue code
6828   for them in this case.
6829
6830 Daniel Stenberg (13 Dec 2017)
6831 - CURLOPT_READFUNCTION.3: refer to argument with correct name
6832   
6833   Bug: #2175
6834   
6835   [ci skip]
6836
6837 - rand: add a clang-analyzer work-around
6838   
6839   scan-build would warn on a potential access of an uninitialized
6840   buffer. I deem it a false positive and had to add this somewhat ugly
6841   work-around to silence it.
6842
6843 - krb5: fix a potential access of uninitialized memory
6844   
6845   A scan-build warning.
6846
6847 - conncache: fix a return code [regression]
6848   
6849   This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
6850   out by scan-build!
6851
6852 - curl: support >256 bytes warning messsages
6853   
6854   Bug: #2174
6855
6856 Michael Kaufmann (12 Dec 2017)
6857 - libssh: fix a syntax error in configure.ac
6858   
6859   Follow-up to c92d2e1
6860   
6861   Closes #2172
6862
6863 Daniel Stenberg (12 Dec 2017)
6864 - examples/smtp-mail.c: use separate defines for options and mail
6865   
6866   ... to make it clearer that the options want address-only, while the
6867   headers in an email can also have the real name.
6868   
6869   Assisted-by: Sean MacLennan
6870
6871 - THANKS: added missing names
6872   
6873   ... as I reran the contrithanks script after the mailmap name fixups.
6874
6875 - mailmap: added/clarified several names
6876
6877 - setopt: less *or equal* than INT_MAX/1000 should be fine
6878   
6879   ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
6880   CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
6881   
6882   Reported-by: Dominik Hölzl
6883   Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
6884   
6885   Closes #2173
6886
6887 - [Dmitry Kostjuchenko brought this change]
6888
6889   vtls: replaced getenv() with curl_getenv()
6890   
6891   Fixed undefined symbol of getenv() which does not exist when compiling
6892   for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
6893   curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
6894   is defined.
6895   
6896   Closes #2171
6897
6898 - RELEASE-NOTES: synced with 3b9ea70ee
6899
6900 - TODO: Expose tried IP addresses that failed
6901   
6902   Suggested-by: Rainer Canavan
6903   
6904   Closes #2126
6905
6906 - curl.1: mention http:// and https:// as valid proxy prefixes
6907
6908 - curl.1: documented two missing valid exit codes
6909
6910 - CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
6911
6912 - Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
6913   
6914   This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
6915   
6916   It was actually added rather recently in 8e8afa82cbb629 due to a crash
6917   that would otherwise happen in the RTSP code. As I don't think we've
6918   fixed that behavior yet, we better keep this work-around until we have
6919   fixed it better.
6920
6921 Michael Kaufmann (10 Dec 2017)
6922 - tests: mark data files as non-executable in git
6923
6924 - tests: update .gitignore for libtests
6925
6926 Daniel Stenberg (10 Dec 2017)
6927 - multi_done: prune DNS cache
6928   
6929   Prune the DNS cache immediately after the dns entry is unlocked in
6930   multi_done. Timed out entries will then get discarded in a more orderly
6931   fashion.
6932   
6933   Test506 is updated
6934   
6935   Reported-by: Oleg Pudeyev
6936   
6937   Fixes #2169
6938   Closes #2170
6939
6940 - mailmap: fixup two old git Author "aliases"
6941
6942 Jay Satiro (10 Dec 2017)
6943 - openssl: Disable file buffering for Win32 SSLKEYLOGFILE
6944   
6945   Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
6946   like it does for other platforms. However, the Windows CRT does not
6947   actually support line buffering (_IOLBF) and will use full buffering
6948   (_IOFBF) instead. We can't use full buffering because multiple processes
6949   may be writing to the file and that could lead to corruption, and since
6950   full buffering is the only buffering available this commit disables
6951   buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
6952   
6953   Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
6954
6955 Daniel Stenberg (10 Dec 2017)
6956 - RESOLVE: output verbose text when trying to set a duplicate name
6957   
6958   ... to help users understand what is or isn't done!
6959
6960 - CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
6961
6962 - [John DeHelian brought this change]
6963
6964   sftp: allow quoted commands to use relative paths
6965   
6966   Closes #1900
6967
6968 Jay Satiro (8 Dec 2017)
6969 - [Richard Alcock brought this change]
6970
6971   CURLOPT_PRIVATE.3: fix grammar
6972   
6973   - Change "never does nothing" double-negative to "never does anything".
6974   
6975   Closes https://github.com/curl/curl/pull/2168
6976
6977 Daniel Stenberg (8 Dec 2017)
6978 - curl: remove __EMX__ #ifdefs
6979   
6980   These are OS/2-specific things added to the code in the year 2000. They
6981   were always ugly. If there's any user left, they still don't need it
6982   done this way.
6983   
6984   Closes #2166
6985
6986 Jay Satiro (8 Dec 2017)
6987 - openssl: improve data-pending check for https proxy
6988   
6989   - Allow proxy_ssl to be checked for pending data even when connssl does
6990     not yet have an SSL handle.
6991   
6992   This change is for posterity. Currently there doesn't seem to be a code
6993   path that will cause a pending data check when proxyssl could have
6994   pending data and the connssl handle doesn't yet exist [1].
6995   
6996   [1]: Recall that an https proxy connection starts out in connssl but if
6997   the destination is also https then the proxy SSL backend data is moved
6998   from connssl to proxyssl, which means connssl handle is temporarily
6999   empty until an SSL handle for the destination can be created.
7000   
7001   Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
7002   
7003   Closes https://github.com/curl/curl/pull/1916
7004
7005 Daniel Stenberg (8 Dec 2017)
7006 - curl: don't set CURLOPT_INTERLEAVEDATA
7007   
7008   That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
7009   and that option isn't set or used by the curl tool!
7010   
7011   Updates the 9 tests that verify --libcurl
7012   
7013   Closes #2167
7014
7015 - curl.h: remove incorrect comment about ERRORBUFFER
7016   
7017   ... error messages are _not_ sent to stderr if this is not set.
7018
7019 - [Michael Felt brought this change]
7020
7021   configure: add AX_CODE_COVERAGE only if using gcc
7022   
7023   Fixes #2076
7024   Closes #2125
7025
7026 - curl: limit -# update frequency for unknown total size
7027   
7028   Make it use a max 10Hz update frequency for this case as well. Return
7029   early if the "point" hasn't moved since last invoke.
7030   
7031   Reported-by: Elliot Saba
7032   
7033   Fixes #2158
7034   Closes #2163
7035
7036 - BINDINGS: another PostgreSQL client
7037   
7038   ...the former link is dead.
7039   
7040   Reported-by: Frank Gevaerts
7041
7042 - [Zachary Seguin brought this change]
7043
7044   CONNECT: keep close connection flag in http_connect_state struct
7045   
7046   Fixes #2088
7047   Closes #2157
7048
7049 - [Per Malmberg brought this change]
7050
7051   include: get netinet/in.h before linux/tcp.h
7052   
7053   ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
7054   4.8.5)
7055   
7056   Closes #2160
7057
7058 - openldap: fix checksrc nits
7059
7060 - [Stepan Broz brought this change]
7061
7062   openldap: add commented out debug possibilities
7063   
7064   ... to aid debugging openldap library using its built-in debug messages.
7065   
7066   Closes #2159
7067
7068 - examples: move threaded-shared-conn.c to the "complicated" ones
7069   
7070   ... due it relying on pthreads to link.
7071
7072 - RELEASE-NOTES: synced with b261c44e8
7073   
7074   ... and bump next release version to 7.58.0
7075
7076 - [Jan Ehrhardt brought this change]
7077
7078   URL: tolerate backslash after drive letter for FILE:
7079   
7080   ... as in "file://c:\some\path\curl.out"
7081   
7082   Reviewed-by: Matthew Kerwin
7083   Closes #2154
7084
7085 - [Randall S. Becker brought this change]
7086
7087   tests: added netinet/in6.h includes in test servers
7088
7089 - [Randall S. Becker brought this change]
7090
7091   configure: check for netinet/in6.h
7092   
7093   Needed by HPE NonStop NSE and NSX systems
7094   
7095   Fixes #2146
7096   Closes #2155
7097
7098 - curl-config: add --ssl-backends
7099   
7100   Lists all SSL backends that were enabled at build-time.
7101   
7102   Suggested-by: Oleg Pudeyev
7103   Fixes #2128
7104
7105 - conncache: only allow multiplexing within same multi handle
7106   
7107   Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
7108   only get additional transfers added to them if the existing connection
7109   is held by the same multi or easy handle. libcurl does not support doing
7110   HTTP/2 streams in different threads using a shared connection.
7111   
7112   Closes #2152
7113
7114 - threaded-shared-conn.c: fixed typo in commenta
7115
7116 - threaded-shared-conn.c: new example
7117
7118 - conncache: fix several lock issues
7119   
7120   If the lock is released before the dealings with the bundle is over, it may
7121   have changed by another thread in the mean time.
7122   
7123   Fixes #2132
7124   Fixes #2151
7125   Closes #2139
7126
7127 - libssh: remove dead code in sftp_qoute
7128   
7129   ... by removing a superfluous NULL pointer check that also confuses
7130   Coverity.
7131   
7132   Fixes #2143
7133   Closes #2153
7134
7135 - sasl_getmesssage: make sure we have a long enough string to pass
7136   
7137   For pop3/imap/smtp, added test 891 to somewhat verify the pop3
7138   case.
7139   
7140   For this, I enhanced the pingpong test server to be able to send back
7141   responses with LF-only instead of always using CRLF.
7142   
7143   Closes #2150
7144
7145 - libssh2: remove dead code from SSH_SFTP_QUOTE
7146   
7147   Figured out while reviewing code in the libssh backend. The pointer was
7148   checked for NULL after having been dereferenced, so we know it would
7149   always equal true or it would've crashed.
7150   
7151   Pointed-out-by: Nikos Mavrogiannopoulos
7152   
7153   Bug #2143
7154   Closes #2148
7155
7156 - ssh-libssh.c: please checksrc
7157
7158 Nikos Mavrogiannopoulos (4 Dec 2017)
7159 - libssh: fixed dereference in statvfs access
7160   
7161   The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
7162   handling fails.
7163   
7164   Fixes #2142
7165
7166 Daniel Stenberg (4 Dec 2017)
7167 - [Guitared brought this change]
7168
7169   RESOURCES: update spec names
7170   
7171   Closes #2145
7172
7173 Nikos Mavrogiannopoulos (3 Dec 2017)
7174 - libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
7175   
7176   The previous code was incorrectly following the libssh2 error detection
7177   for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
7178   
7179   Fixes #2142
7180   
7181   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7182
7183 - libssh: no need to call sftp_get_error as ssh_get_error is sufficient
7184   
7185   Fixes #2141
7186   
7187   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7188
7189 Daniel Stenberg (2 Dec 2017)
7190 - libssh: fix minor static code analyzer nits
7191   
7192   - remove superfluous NULL check which otherwise tricks the static code
7193   analyzers to assume NULL pointer dereferences.
7194   
7195   - fix fallthrough in switch()
7196   
7197   - indent mistake
7198
7199 - openssl: pkcs12 is supported by boringssl
7200   
7201   Removes another #ifdef for BoringSSL
7202   
7203   Pointed-out-by: David Benjamin
7204   
7205   Closes #2134
7206
7207 - [Jay Satiro brought this change]
7208
7209   travis: use pip2 instead of pip
7210   
7211   .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
7212   
7213   0.01s$ pip install --user cpp-coveralls
7214   /Users/travis/.travis/job_stages: line 57: pip: command not found
7215   
7216   Ref: https://github.com/travis-ci/travis-ci/issues/8829
7217   
7218   Closes https://github.com/curl/curl/pull/2133
7219
7220 - [Nikos Mavrogiannopoulos brought this change]
7221
7222   lib582: do not verify host for SFTP
7223   
7224   This SFTP test fails with libssh back-end due to failure to verify
7225   the peer. Disable peer verification in the test as there seems to
7226   be the intention of the test.
7227   
7228   Note that the libssh back-end automatically verifies the peer's
7229   host using the default known_hosts file.
7230   
7231   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7232
7233 - [Nikos Mavrogiannopoulos brought this change]
7234
7235   libssh: added SFTP support
7236   
7237   The SFTP back-end supports asynchronous reading only, limited
7238   to 32-bit file length. Writing is synchronous with no other
7239   limitations.
7240   
7241   This also brings keyboard-interactive authentication.
7242   
7243   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7244
7245 - [Nikos Mavrogiannopoulos brought this change]
7246
7247   symbols-in-versions: added new symbols with 7.56.3 version
7248   
7249   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7250
7251 - [Nikos Mavrogiannopoulos brought this change]
7252
7253   .travis.yml: added build --with-libssh
7254   
7255   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
7256
7257 - [Nikos Mavrogiannopoulos brought this change]
7258
7259   libssh2: return CURLE_UPLOAD_FAILED on failure to upload
7260   
7261   This brings its in sync with the error code returned by the
7262   libssh backend.
7263   
7264   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
7265
7266 - [Nikos Mavrogiannopoulos brought this change]
7267
7268   libssh2: send the correct CURLE error code on scp file not found
7269   
7270   That also updates tests to expect the right error code
7271   
7272   libssh2 back-end returns CURLE_SSH error if the remote file
7273   is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
7274   which is sent by the libssh backend.
7275   
7276   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
7277
7278 - [Nikos Mavrogiannopoulos brought this change]
7279
7280   Added support for libssh SSH SCP back-end
7281   
7282   libssh is an alternative library to libssh2.
7283   https://www.libssh.org/
7284   
7285   That patch set also introduces support for ECDSA
7286   ed25519 keys, as well as gssapi authentication.
7287   
7288   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
7289
7290 - RELEASE-NOTES: synced with af8cc7a69
7291
7292 - curlver: towards 7.57.1