smtp: use the upload buffer size for scratch buffer malloc
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Version 7.59.0 (13 Mar 2018)
10
11 Daniel Stenberg (13 Mar 2018)
12 - release: 7.59.0
13
14 Kamil Dudka (13 Mar 2018)
15 - tests/.../spnego.py: fix identifier typo
16   
17   Detected by Coverity Analysis:
18   
19   Error: IDENTIFIER_TYPO:
20   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
21   * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
22   * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
23   curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
24   curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
25   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
26   curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
27   
28   Closes #2379
29
30 Daniel Stenberg (13 Mar 2018)
31 - CURLOPT_COOKIEFILE.3: "-" as file name means stdin
32   
33   Reported-by: Aron Bergman
34   Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
35   
36   [ci skip]
37
38 - Revert "hostip: fix compiler warning: 'variable set but not used'"
39   
40   This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
41   
42   The assignment really needs to be there or we risk working with an
43   uninitialized pointer.
44
45 Michael Kaufmann (12 Mar 2018)
46 - limit-rate: fix compiler warning
47   
48   follow-up to 72a0f62
49
50 Viktor Szakats (12 Mar 2018)
51 - checksrc.pl: add -i and -m options
52   
53   To sync it with changes made for the libssh2 project.
54   Also cleanup some whitespace.
55
56 - curl-openssl.m4: fix spelling [ci skip]
57
58 - FAQ: fix a broken URL [ci skip]
59
60 Daniel Stenberg (12 Mar 2018)
61 - http2: mark the connection for close on GOAWAY
62   
63   ... don't consider it an error!
64   
65   Assisted-by: Jay Satiro
66   Reported-by: Łukasz Domeradzki
67   Fixes #2365
68   Closes #2375
69
70 - credits: Viktor prefers without accent
71
72 - openldap: white space changes, fixed up the copyright years
73
74 - openldap: check ldap_get_attribute_ber() results for NULL before using
75   
76   CVE-2018-1000121
77   Reported-by: Dario Weisser
78   Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
79
80 - FTP: reject path components with control codes
81   
82   Refuse to operate when given path components featuring byte values lower
83   than 32.
84   
85   Previously, inserting a %00 sequence early in the directory part when
86   using the 'singlecwd' ftp method could make curl write a zero byte
87   outside of the allocated buffer.
88   
89   Test case 340 verifies.
90   
91   CVE-2018-1000120
92   Reported-by: Duy Phan Thanh
93   Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
94
95 - readwrite: make sure excess reads don't go beyond buffer end
96   
97   CVE-2018-1000122
98   Bug: https://curl.haxx.se/docs/adv_2018-b047.html
99   
100   Detected by OSS-fuzz
101
102 - BUGS: updated link to security process
103
104 - limit-rate: kick in even before "limit" data has been received
105   
106   ... and make sure to avoid integer overflows with really large values.
107   
108   Reported-by: 刘佩东
109   Fixes #2371
110   Closes #2373
111
112 - docs/SECURITY.md -> docs/SECURITY-PROCESS.md
113
114 - SECURITY.md: call it the security process
115
116 Michael Kaufmann (11 Mar 2018)
117 - Curl_range: fix FTP-only and FILE-only builds
118   
119   follow-up to e04417d
120
121 - hostip: fix compiler warning: 'variable set but not used'
122
123 Daniel Stenberg (11 Mar 2018)
124 - HTTP: allow "header;" to replace an internal header with a blank one
125   
126   Reported-by: Michael Kaufmann
127   Fixes #2357
128   Closes #2362
129
130 - http2: verbose output new MAX_CONCURRENT_STREAMS values
131   
132   ... as it is interesting for many users.
133
134 - SECURITY: distros' max embargo time is 14 days now
135
136 Patrick Monnerat (8 Mar 2018)
137 - curl tool: accept --compressed also if Brotli is enabled and zlib is not.
138
139 Daniel Stenberg (5 Mar 2018)
140 - THANKS + mailmap: remove duplicates, fixup full names
141
142 - [sergii.kavunenko brought this change]
143
144   WolfSSL: adding TLSv1.3
145   
146   Closes #2349
147
148 - RELEASE-NOTES/THANKS: synced with cc1d4c505
149
150 - [Richard Alcock brought this change]
151
152   winbuild: prefer documented zlib library names
153   
154   Check for existence of import and static libraries with documented names
155   and use them if they do. Fallback to previous names.
156   
157   According to
158   https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
159   Windows, the names of the import library is "zdll.lib" and static
160   library is "zlib.lib".
161   
162   closes #2354
163
164 Marcel Raad (4 Mar 2018)
165 - krb5: use nondeprecated functions
166   
167   gss_seal/gss_unseal have been deprecated in favor of
168   gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
169   version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
170   1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
171   "GSS_Unwrap() (formerly GSS_Unseal())".
172   
173   Use the nondeprecated functions to avoid deprecation warnings.
174   
175   [1] https://tools.ietf.org/html/rfc2078
176   [2] https://tools.ietf.org/html/rfc1964
177   
178   Closes https://github.com/curl/curl/pull/2356
179
180 Daniel Stenberg (4 Mar 2018)
181 - curl.1: mention how to add numerical IP addresses in NO_PROXY
182
183 - CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
184
185 - NO_PROXY: fix for IPv6 numericals in the URL
186   
187   Added test 1265 that verifies.
188   
189   Reported-by: steelman on github
190   Fixes #2353
191   Closes #2355
192
193 - build: get CFLAGS (including -werror) used for examples and tests
194   
195   ... so that the CI and more detects compiler warnings/errors properly!
196   
197   Closes #2337
198
199 Marcel Raad (3 Mar 2018)
200 - curl_ctype: fix macro redefinition warnings
201   
202   On MinGW and Cygwin, GCC and clang have been complaining about macro
203   redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
204   by undefining the macros before redefining them as suggested in
205   https://github.com/curl/curl/pull/2269.
206   
207   Suggested-by: Daniel Stenberg
208
209 Dan Fandrich (2 Mar 2018)
210 - unit1307: proper cleanup on OOM to fix torture tests
211
212 Marcel Raad (28 Feb 2018)
213 - unit1309: fix warning on Windows x64
214   
215   When targeting x64, MinGW-w64 complains about conversions between
216   32-bit long and 64-bit pointers. Fix this by reusing the
217   GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
218   from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
219   CURLX_INTEGER_TO_POINTER_CAST.
220   
221   Closes https://github.com/curl/curl/pull/2341
222
223 - travis: update compiler versions
224   
225   Update clang to version 3.9 and GCC to version 6.
226   
227   Closes https://github.com/curl/curl/pull/2345
228
229 Daniel Stenberg (26 Feb 2018)
230 - docs/MANUAL: formfind.pl is not accessible on the site anymore
231   
232   Fixes #2342
233
234 Jay Satiro (24 Feb 2018)
235 - curl-openssl.m4: Fix version check for OpenSSL 1.1.1
236   
237   - Add OpenSSL 1.1.1 to the header/library version lists.
238   
239   - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
240     which was added in that version.
241   
242   Prior to this change an erroneous header/library mismatch was caused by
243   lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
244
245 Viktor Szakats (23 Feb 2018)
246 - lib655: silence compiler warning
247   
248   Closes https://github.com/curl/curl/pull/2335
249
250 - spelling fixes
251   
252   Detected using the `codespell` tool.
253   
254   Also contains one URL protocol upgrade.
255   
256   Closes https://github.com/curl/curl/pull/2334
257
258 Daniel Stenberg (24 Feb 2018)
259 - projects/README: remove reference to dead IDN link/package
260   
261   Reported-by: Stefan Kanthak and Rod Widdowson
262   
263   Fixes #2325
264
265 Jay Satiro (23 Feb 2018)
266 - [Rod Widdowson brought this change]
267
268   winbuild: Use macros for the names of some build utilities
269   
270   - Add macros to the top of the makefile for rc and mt utilities so that
271     it is easier to change their locations.
272   
273   Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
274   Reported-by: Stefan Kanthak
275   
276   Closes https://github.com/curl/curl/issues/2329
277
278 Daniel Stenberg (23 Feb 2018)
279 - TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
280
281 - curl_share_setopt.3: connection cache is shared within multi handles
282
283 Jay Satiro (22 Feb 2018)
284 - [Rod Widdowson brought this change]
285
286   winbuild: Use CALL to run batch scripts
287   
288   Co-authored-by: Stefan Kanthak
289   
290   Closes https://github.com/curl/curl/issues/2330
291   Closes https://github.com/curl/curl/pull/2331
292
293 Patrick Monnerat (22 Feb 2018)
294 - os400: add curl_resolver_start_callback type to ILE/RPG binding
295
296 Daniel Stenberg (22 Feb 2018)
297 - form.d: rephrased somewhat, added two example command lines
298
299 Jay Satiro (21 Feb 2018)
300 - [Francisco Sedano brought this change]
301
302   url: Add option CURLOPT_RESOLVER_START_FUNCTION
303   
304   - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
305     will be called every time before a new resolve request is started
306     (ie before a host is resolved) with a pointer to backend-specific
307     resolver data. Currently this is only useful for ares.
308   
309   - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
310     pass to the resolver start callback.
311   
312   Closes https://github.com/curl/curl/pull/2311
313
314 - lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
315   
316   - In keeping with the naming of our other connect timeout options rename
317     CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
318   
319   This change adds the _MS suffix since the option expects milliseconds.
320   This is more intuitive for our users since other connect timeout options
321   that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
322   CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
323   
324   The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
325   
326   Follow-up to 2427d94 which added the lib and tool option yesterday.
327   
328   Ref: https://github.com/curl/curl/pull/2260
329
330 Patrick Monnerat (21 Feb 2018)
331 - sasl: prefer PLAIN mechanism over LOGIN
332   
333   SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
334   PLAIN should be used instead if available.
335
336 Daniel Stenberg (21 Feb 2018)
337 - RELEASE-NOTES: synced with 2427d94c6
338
339 Jay Satiro (20 Feb 2018)
340 - [Anders Bakken brought this change]
341
342   url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
343   
344   - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
345     eyeball timeout value.
346   
347   - Add new optval macro CURL_HET_DEFAULT to represent the default happy
348     eyeballs timeout value (currently 200 ms).
349   
350   - Add new tool option --happy-eyeballs-timeout-ms to expose
351     CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
352     other -timeout options in the tool expect seconds not milliseconds.
353   
354   Closes https://github.com/curl/curl/pull/2260
355
356 - hostip: fix 'potentially uninitialized variable' warning
357   
358   Follow-up to 50d1b33.
359   
360   Caught by AppVeyor.
361
362 Daniel Stenberg (20 Feb 2018)
363 - TODO: warning if curl version is not in sync with libcurl version
364
365 Jay Satiro (20 Feb 2018)
366 - [Anders Bakken brought this change]
367
368   CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
369   
370   This enables users to preresolve but still take advantage of happy
371   eyeballs and trying multiple addresses if some are not connecting.
372   
373   Ref: https://github.com/curl/curl/pull/2260
374
375 Daniel Stenberg (20 Feb 2018)
376 - [Sergio Borghese brought this change]
377
378   examples/sftpuploadresume: resume upload via CURLOPT_APPEND
379   
380   URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
381
382 - curl --version: show PSL if the run-time lib has it enabled
383   
384   ... not of the #define was set at build-time!
385
386 - TODO: "Support in-memory certs/ca certs/keys"
387   
388   removed SSLKEYLOGFILE support (fixed)
389   
390   removed "consider SSL patches" (outdated)
391   
392   Closes #2310
393
394 - CURLOPT_HEADER.3: clarify problems with different data sizes
395
396 - test1556: verify >16KB headers to the header callback
397
398 - header callback: don't chop headers into smaller pieces
399   
400   Reported-by: Guido Berhoerster
401   Fixes #2314
402   Closes #2316
403
404 - test1154: verify that long HTTP headers get rejected
405
406 - http: fix the max header length detection logic
407   
408   Previously, it would only check for max length if the existing alloc
409   buffer was to small to fit it, which often would make the header still
410   get used.
411   
412   Reported-by: Guido Berhoerster
413   Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
414   
415   Closes #2315
416
417 - CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
418   
419   Reported-by: Erik Johansson
420   Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
421
422 - CURLOPT_HEADERFUNCTION.3: mention folded headers
423
424 - TODO: 1.1 Option to refuse usernames in URLs
425   
426   Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
427
428 - TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
429
430 - ssh: add two missing state names
431   
432   The list of state names (used in debug builds) was out of sync in
433   relation to the list of states (used in all builds).
434   
435   I now added an assert to make sure the sizes of the two lists match, to
436   aid in detecting this mistake better in the future.
437   
438   Regression since c92d2e14cf, shipped in 7.58.0.
439   
440   Reported-by: Somnath Kundu
441   
442   Fixes #2312
443   Closes #2313
444
445 - Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
446   
447   This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
448   
449   Reported-by: Jay Satiro
450
451 Jay Satiro (15 Feb 2018)
452 - non-ascii: fix implicit declaration warning
453   
454   Follow-up to b46cfbc.
455   
456   Caught by Travis CI.
457
458 Daniel Stenberg (15 Feb 2018)
459 - travis: add build with iconv enabled
460   
461   ... to verify it builds and works fine.
462   
463   Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
464   
465   Closes #1872
466
467 - TODO: 18.18 retry on network is unreachable
468   
469   Closes #1603
470
471 - KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
472   
473   Closes #1254
474
475 Kamil Dudka (15 Feb 2018)
476 - nss: use PK11_CreateManagedGenericObject() if available
477   
478   ... so that the memory allocated by applications using libcurl does not
479   grow per each TLS connection.
480   
481   Bug: https://bugzilla.redhat.com/1510247
482   
483   Closes #2297
484
485 Daniel Stenberg (15 Feb 2018)
486 - [Björn Stenberg brought this change]
487
488   TODO fixed: Detect when called from within callbacks
489   
490   Closes #2302
491
492 - BINDINGS: fix curb link (and remove ruby-curl-multi)
493   
494   Reported-by: Klaus Stein
495
496 - curl_gssapi: make sure this file too uses our *printf()
497
498 - libcurl-security.3: separate file:// section
499   
500   ... just to make it more apparent. Even if it repeats
501   some pieces of information.
502
503 - libcurl-security.3: the http://192.168.0.1/my_router_config case
504   
505   Mentioned-By: Rich Moore
506
507 - libcurl-security.3: mention the URL standards problems too
508
509 - libcurl-security.3: split out from libcurl-tutorial.3
510   
511   To make more accessible.
512   
513   Merged in some new language from "URLs are dangerous things" as discussed on
514   the mailing list a few days ago:
515   
516   Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
517
518 - RELEASE-NOTES: synced with e551910f8
519
520 Patrick Monnerat (13 Feb 2018)
521 - tests: new tests for http raw mode
522   
523   Test 319 checks proper raw mode data with non-chunked gzip
524   transfer-encoded server data.
525   Test 326 checks raw mode with chunked server data.
526   
527   Bug: #2303
528   Closes #2308
529
530 Kamil Dudka (12 Feb 2018)
531 - tlsauthtype.d: works only if libcurl is built with TLS-SRP support
532   
533   Bug: https://bugzilla.redhat.com/1542256
534   
535   Closes #2306
536
537 Patrick Monnerat (12 Feb 2018)
538 - smtp: fix processing of initial dot in data
539   
540   RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
541   should be taken into account when chasing the <CRLF>.<CRLF> end marker.
542   Thus a leading dot character in data is also subject to escaping.
543   
544   Tests 911 and test server are adapted to this situation.
545   New tests 951 and 952 check proper handling of initial dot in data.
546   
547   Closes #2304
548
549 Daniel Stenberg (12 Feb 2018)
550 - sha256: avoid redefine
551
552 - [Douglas Mencken brought this change]
553
554   sha256: build with OpenSSL < 0.9.8 too
555   
556   support for SHA-2 was introduced in OpenSSL 0.9.8
557   
558   Closes #2305
559
560 - [Bruno Grasselli brought this change]
561
562   README: language fix
563   
564   s/off/from
565   
566   Closes #2300
567
568 Patrick Monnerat (12 Feb 2018)
569 - http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
570   
571   Bug: #2303
572   Reported-By: Henry Roeland
573
574 Daniel Stenberg (9 Feb 2018)
575 - get_posix_time: only check for overflows if they can happen!
576
577 Michael Kaufmann (9 Feb 2018)
578 - schannel: fix "no previous prototype" compiler warning
579
580 Jay Satiro (9 Feb 2018)
581 - [Mohammad AlSaleh brought this change]
582
583   content_encoding: Add "none" alias to "identity"
584   
585   Some servers return a "content-encoding" header with a non-standard
586   "none" value.
587   
588   Add "none" as an alias to "identity" as a work-around, to avoid
589   unrecognised content encoding type errors.
590   
591   Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
592   
593   Closes https://github.com/curl/curl/pull/2298
594
595 Steve Holme (8 Feb 2018)
596 - build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
597
598 - build-openssl.bat: Fixed incorrect move if destination build folder exists
599
600 Michael Kaufmann (8 Feb 2018)
601 - schannel: fix compiler warnings
602   
603   Closes #2296
604
605 Steve Holme (7 Feb 2018)
606 - curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
607   
608   Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
609   Added the necessary include file to curl_addrinfo.c.
610   
611   Note: The SDK (which is considered beta) has to be installed, VS 2017
612   project file has to be re-targeted for Windows 10.0.17061 and #define
613   enabled in config-win32.h.
614
615 Patrick Monnerat (7 Feb 2018)
616 - fnmatch: optimize processing of consecutive *s and ?s pattern characters
617   
618   Reported-By: Daniel Stenberg
619   Fixes #2291
620   Closes #2293
621
622 Steve Holme (6 Feb 2018)
623 - build-openssl.bat/build-wolfssl.bat: Build platform is optional
624   
625   Whilst the compiler parameter is mandatory, platform is optional as it
626   is automatically calculated by the :configure section.
627   
628   This partially reverts commit 6d62d2c55d.
629
630 Daniel Stenberg (6 Feb 2018)
631 - [Patrick Schlangen brought this change]
632
633   openssl: Don't add verify locations when verifypeer==0
634   
635   When peer verification is disabled, calling
636   SSL_CTX_load_verify_locations is not necessary. Only call it when
637   verification is enabled to save resources and increase performance.
638   
639   Closes #2290
640
641 Steve Holme (5 Feb 2018)
642 - build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
643   
644   ...and not just the Community Edition.
645
646 - build-openssl.bat: Extend VC15 support to include Enterprise and Professional
647   
648   ...and not just the Community Edition.
649
650 Michael Kaufmann (5 Feb 2018)
651 - time-cond: fix reading the file modification time on Windows
652   
653   On Windows, stat() may adjust the unix file time by a daylight saving time
654   offset. Avoid this by calling GetFileTime() instead.
655   
656   Fixes #2164
657   Closes #2204
658
659 Daniel Stenberg (5 Feb 2018)
660 - formdata: use the mime-content type function
661   
662   Reduce code duplication by making Curl_mime_contenttype available and
663   used by the formdata function. This also makes the formdata function
664   recognize a set of more file extensions by default.
665   
666   PR #2280 brought this to my attention.
667   
668   Closes #2282
669
670 - getdate: return -1 for out of range
671   
672   ...as that's how the function is documented to work.
673   
674   Reported-by: Michael Kaufmann
675   Bug found in an autobuild with 32 bit time_t
676   
677   Closes #2278
678
679 - [Ben Greear brought this change]
680
681   build: fix termios issue on android cross-compile
682   
683   Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
684   Signed-off-by: Ben Greear <greearb@candelatech.com>
685
686 - time_t-fixes: remove typecasts to 'long' for info.filetime
687   
688   They're now wrong.
689   
690   Reported-by: Michael Kaufmann
691   
692   Closes #2277
693
694 - curl_setup: move the precautionary define of SIZEOF_TIME_T
695   
696   ... up to before it may be used for the TIME_T_MAX/MIN logic.
697   
698   Reported-by: Michael Kaufmann
699
700 - parsedate: s/#if/#ifdef
701   
702   Reported-by: Michael Kaufmann
703   Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
704
705 Patrick Monnerat (31 Jan 2018)
706 - fnmatch: pattern syntax can no longer fail
707   
708   Whenever an expected pattern syntax rule cannot be matched, the
709   character starting the rule loses its special meaning and the parsing
710   is resumed:
711   - backslash at the end of pattern string matches itself.
712   - Error in [:keyword:] results in set containing :\[dekorwy.
713   
714   Unit test 1307 updated for this new situation.
715   
716   Closes #2273
717
718 - fnmatch: accept an alphanum to be followed by a non-alphanum in char set
719   
720   Also be more tolerant about set pattern syntax.
721   Update unit test 1307 accordingly.
722   
723   Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
724
725 - fnmatch: do not match the empty string with a character set
726
727 Jay Satiro (30 Jan 2018)
728 - build: fix windows build methods for curl_ctype.c
729   
730   - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
731     curlx files since they are required by both src and lib.
732   
733   Follow-up to 4272a0b which added curl_ctype.
734
735 Daniel Stenberg (30 Jan 2018)
736 - progress-bar.d: update to match implementation
737   
738   ... since commit 993dd5651a6
739   
740   Reported-by: Martin Dreher
741   Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
742   
743   Closes #2271
744
745 - http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
746   
747   ... instead of doing it unconditionally in debug builds. It cluttered up
748   the output a little too much.
749
750 - [Max Dymond brought this change]
751
752   file: Check the return code from Curl_range and bail out on error
753
754 - [Max Dymond brought this change]
755
756   Curl_range: add check to ensure "from <= to"
757
758 - [Max Dymond brought this change]
759
760   Curl_range: commonize FTP and FILE range handling
761   
762   Closes #2205
763
764 - RELEASE-NOTES: synced with 811beab9f
765
766 - curlver: next release will be 7.59.0
767
768 - [Michał Janiszewski brought this change]
769
770   curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
771   
772   Closes #2275
773
774 - time: support > year 2038 time stamps for system with 32bit long
775   
776   ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
777   CURLINFO_FILETIME_T.
778   
779   Fixes #2238
780   Closes #2264
781
782 - curl_easy_reset: clear digest auth state
783   
784   Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
785   Reported-by: Ruurd Beerstra
786   Fixes #2255
787   Closes #2272
788
789 - [Adam Marcionek brought this change]
790
791   winbuild: make linker generate proper PDB
792   
793   Link.exe requires /DEBUG to properly generate a full pdb file on release
794   builds.
795   
796   Closes #2274
797
798 - curl: add --proxy-pinnedpubkey
799   
800   To verify a proxy's public key. For when using HTTPS proxies.
801   
802   Fixes #2192
803   Closes #2268
804
805 - configure: set PATH_SEPARATOR to colon for PATH w/o separator
806   
807   The logic tries to figure out what the path separator in the $PATH
808   variable is, but if there's only one directory in the $PATH it
809   fails. This change make configure *guess* on colon instead of erroring
810   out, simply because that is probably the more common character.
811   
812   PATH_SEPARATOR can always be set by the user to override the guessing.
813   
814   (tricky bug to reproduce, as in my case for example the configure script
815   requires binaries in more than one directory so passing in a PATH with a
816   single dir fails.)
817   
818   Reported-by: Earnestly on github
819   Fixes #2202
820   Closes #2265
821
822 - curl_ctype: private is*() type macros and functions
823   
824   ... since the libc provided one are locale dependent in a way we don't
825   want. Also, the "native" isalnum() (for example) works differently on
826   different platforms which caused test 1307 failures on macos only.
827   
828   Closes #2269
829
830 Marcel Raad (29 Jan 2018)
831 - build: open VC15 projects with VS 2017
832   
833   Previously, they were opened with Visual Studio 2015 by default, which
834   cannot build them.
835
836 Daniel Stenberg (29 Jan 2018)
837 - RELEASE-NOTES: synced with 094647fca
838
839 - TODO: UTF-8 filenames in Content-Disposition
840   
841   Closes #1888
842
843 - KNOWN_BUGS: DICT responses show the underlying protocol
844   
845   Closes #1809
846
847 Jay Satiro (27 Jan 2018)
848 - [Alessandro Ghedini brought this change]
849
850   docs: fix typos in man pages
851   
852   Closes https://github.com/curl/curl/pull/2266
853
854 Patrick Monnerat (26 Jan 2018)
855 - lib555: drop text conversion and encode data as ascii codes
856   
857   If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
858   giving a result that is different from what is expected.
859   This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
860   to upload in ascii.
861   
862   Bug: https://github.com/curl/curl/pull/1872
863
864 Daniel Stenberg (26 Jan 2018)
865 - lib517: make variable static to avoid compiler warning
866   
867   ... with clang on macos
868
869 Patrick Monnerat (26 Jan 2018)
870 - lib544: sync ascii code data with textual data
871   
872   Data mismatch caused test 545 to fail when character encoding
873   conversion is enabled.
874   
875   Bug: https://github.com/curl/curl/pull/1872
876
877 Daniel Stenberg (25 Jan 2018)
878 - [Travis Burtrum brought this change]
879
880   GSKit: restore pinnedpubkey functionality
881   
882   inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
883   
884   Closes #2263
885
886 - [Dair Grant brought this change]
887
888   darwinssl: Don't import client certificates into Keychain on macOS
889   
890   Closes #2085
891
892 - configure: fix the check for unsigned time_t
893   
894   Assign the time_t variable negative value and then check if it is
895   greater than zero, which will evaluate true for unsigned time_t but
896   false for signed time_t.
897
898 - parsedate: fix date parsing for systems with 32 bit long
899   
900   Make curl_getdate() handle dates before 1970 as well (returning negative
901   values).
902   
903   Make test 517 test dates for 64 bit time_t.
904   
905   This fixes bug (3) mentioned in #2238
906   
907   Closes #2250
908
909 - [McDonough, Tim brought this change]
910
911   openssl: fix pinned public key build error in FIPS mode
912   
913   Here is a version that should work with all versions of openssl 0.9.7
914   through 1.1.0.
915   
916   Links to the docs:
917   https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
918   https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
919   
920   At the very bottom of the 1.1.0 documentation there is a history section
921   that states, " stack allocated EVP_MD_CTXs are no longer supported."
922   
923   If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
924   simple mapping can be used as described here:
925   https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
926   
927   Closes #2258
928
929 - [Travis Burtrum brought this change]
930
931   SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
932
933 - [Travis Burtrum brought this change]
934
935   SChannel/WinSSL: Implement public key pinning
936   
937   Closes #1429
938
939 - bump: towards 7.58.1
940
941 - cookies: remove verbose "cookie size:" output
942   
943   It was once used for some debugging/verifying logic but should never have
944   ended up in git!
945
946 - TODO: hardcode the "localhost" addresses
947
948 - TODO: CURL_REFUSE_CLEARTEXT
949   
950   An idea that popped up in discussions on twitter.
951
952 - progress-bar: don't use stderr explicitly, use bar->out
953   
954   Reported-By: Gisle Vanem
955   Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
956
957 GitHub (24 Jan 2018)
958 - [Gisle Vanem brought this change]
959
960   Fixes for MSDOS etc.
961   
962   djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
963   But djgpp seems the only choice for MSDOS anyway.
964   
965   PellesC do have a 'F_OK' defined in it's <unistd.h>.
966   
967   Update year in Copyright.
968
969 - [Gisle Vanem brought this change]
970
971   Fix small typo.
972
973 Version 7.58.0 (23 Jan 2018)
974
975 Daniel Stenberg (23 Jan 2018)
976 - RELEASE: 7.58.0
977
978 - [Gisle Vanem brought this change]
979
980   progress-bar: get screen width on windows
981
982 - test1454: --connect-to with IPv6 address w/o IPv6 support!
983
984 - CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
985   
986   Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
987   Reported-by: John Hascall
988   
989   Closes #2257
990
991 - docs: fix man page syntax to make test 1140 OK again
992
993 - http: prevent custom Authorization headers in redirects
994   
995   ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
996   curl already handles Authorization headers created internally.
997   
998   Note: this changes behavior slightly, for the sake of reducing mistakes.
999   
1000   Added test 317 and 318 to verify.
1001   
1002   Reported-by: Craig de Stigter
1003   Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
1004
1005 - curl: progress bar refresh, get width using ioctl()
1006   
1007   Get screen width from the environment variable COLUMNS first, if set. If
1008   not, use ioctl(). If nether works, assume 79.
1009   
1010   Closes #2242
1011   
1012   The "refresh" is for the -# output when no total transfer size is
1013   known. It will now only use a single updated line even for this case:
1014   
1015   The "-=O=-" ship moves when data is transferred. The four flying
1016   "hashes" move (on a sine wave) on each refresh, independent of data.
1017
1018 - RELEASE-NOTES: synced with bb0ffcc36
1019
1020 - libcurl-env.3: first take
1021
1022 - TODO: two possible name resolver improvements
1023
1024 - [Kartik Mahajan brought this change]
1025
1026   http2: don't close connection when single transfer is stopped
1027   
1028   Fixes #2237
1029   Closes #2249
1030
1031 - test558: fix for multissl builds
1032   
1033   vtls.c:multissl_init() might do a curl_free() call so strip that out to
1034   make this work with more builds. We just want to verify that
1035   memorytracking works so skipping one line is no harm.
1036
1037 - examples/url2file.c: add missing curl_global_cleanup() call
1038   
1039   Reported-by: XhstormR on github
1040   Fixes #2245
1041
1042 - [Michael Gmelin brought this change]
1043
1044   SSH: Fix state machine for ssh-agent authentication
1045   
1046   In case an identity didn't match[0], the state machine would fail in
1047   state SSH_AUTH_AGENT instead of progressing to the next identity in
1048   ssh-agent. As a result, ssh-agent authentication only worked if the
1049   identity required happened to be the first added to ssh-agent.
1050   
1051   This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
1052   stated that the "else" statement was required to prevent getting stuck
1053   in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
1054   interface I couldn't see how this could happen or reproduce it and I
1055   also couldn't find a more detailed description of the problem which
1056   would explain a test case to reproduce the problem this was supposed to
1057   fix.
1058   
1059   [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
1060   
1061   Closes #2248
1062
1063 - openssl: fix potential memory leak in SSLKEYLOGFILE logic
1064   
1065   Coverity CID 1427646.
1066
1067 - openssl: fix the libressl build again
1068   
1069   Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
1070   late OpenSSL version...
1071   
1072   Fixes #2246
1073   Closes #2247
1074   
1075   Reported-by: jungle-boogie on github
1076
1077 - unit1307: test many wildcards too
1078
1079 - curl_fnmatch: only allow 5 '*' sections in a single pattern
1080   
1081   ... to avoid excessive recursive calls. The number 5 is totally
1082   arbitrary and could be modified if someone has a good motivation.
1083
1084 - ftp-wildcard: fix matching an empty string with "*[^a]"
1085   
1086   .... and avoid advancing the pointer to trigger an out of buffer read.
1087   
1088   Detected by OSS-fuzz
1089   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
1090   Assisted-by: Max Dymond
1091
1092 - SMB: fix numeric constant suffix and variable types
1093   
1094   1. don't use "ULL" suffix since unsupported in older MSVC
1095   2. use curl_off_t instead of custom long long ifdefs
1096   3. make get_posix_time() not do unaligned data access
1097   
1098   Fixes #2211
1099   Closes #2240
1100   Reported-by: Chester Liu
1101
1102 - [rouzier brought this change]
1103
1104   CURLOPT_TCP_NODELAY.3: fix typo
1105   
1106   Closes #2239
1107
1108 - smtp/pop3/imap_get_message: decrease the data length too...
1109   
1110   Follow-up commit to 615edc1f73 which was incomplete.
1111   
1112   Assisted-by: Max Dymond
1113   Detected by OSS-fuzz
1114   Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
1115
1116 - openssl: enable SSLKEYLOGFILE support by default
1117   
1118   Fixes #2210
1119   Closes #2236
1120
1121 Patrick Monnerat (14 Jan 2018)
1122 - mime: clone mime tree upon easy handle duplication.
1123   
1124   A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
1125   strongly bound to the handle: there is a pointer to the easy handle in
1126   each item of the mime tree and following the parent pointer list
1127   of mime items ends in a dummy part stored within the handle.
1128   
1129   Because of this binding, a mime tree cannot be shared between different
1130   easy handles, thus it needs to be cloned upon easy handle duplication.
1131   
1132   There is no way for the caller to get the duplicated mime tree
1133   handle: it is then set to be automatically destroyed upon freeing the
1134   new easy handle.
1135   
1136   New test 654 checks proper mime structure duplication/release.
1137   
1138   Add a warning note in curl_mime_data_cb() documentation about sharing
1139   user data between duplicated handles.
1140   
1141   Closes #2235
1142
1143 - docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
1144
1145 Daniel Stenberg (13 Jan 2018)
1146 - test395: HTTP with overflow Content-Length value
1147
1148 - test394: verify abort of rubbish in Content-Length: value
1149
1150 - test393: verify --max-filesize with excessive Content-Length
1151
1152 - HTTP: bail out on negative Content-Length: values
1153   
1154   ... and make the max filesize check trigger if the value is too big.
1155   
1156   Updates test 178.
1157   
1158   Reported-by: Brad Spencer
1159   Fixes #2212
1160   Closes #2223
1161
1162 Marcel Raad (13 Jan 2018)
1163 - [Dan Johnson brought this change]
1164
1165   configure.ac: append extra linker flags instead of prepending them.
1166   
1167   Link order should list libraries after the libraries that use them,
1168   so when we're guessing that we might also need to add -ldl in order
1169   to use -lssl, we should add -ldl after -lssl.
1170   
1171   Closes https://github.com/curl/curl/pull/2234
1172
1173 Daniel Stenberg (13 Jan 2018)
1174 - RELEASE-NOTES: synced with 6fa10c8fa
1175
1176 Jay Satiro (13 Jan 2018)
1177 - setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
1178   
1179   Broken since f121575 (precedes 7.56.1).
1180   
1181   Bug: https://github.com/curl/curl/issues/2225
1182   Reported-by: cmfrolick@users.noreply.github.com
1183   
1184   Closes https://github.com/curl/curl/pull/2227
1185
1186 Patrick Monnerat (13 Jan 2018)
1187 - setopt: reintroduce non-static Curl_vsetopt() for OS400 support
1188   
1189   This also upgrades ILE/RPG bindings with latest setopt options.
1190   
1191   Reported-By: jonrumsey on github
1192   Fixes #2230
1193   Closes #2233
1194
1195 Jay Satiro (11 Jan 2018)
1196 - [Zhouyihai Ding brought this change]
1197
1198   http2: fix incorrect trailer buffer size
1199   
1200   Prior to this change the stored byte count of each trailer was
1201   miscalculated and 1 less than required. It appears any trailer
1202   after the first that was passed to Curl_client_write would be truncated
1203   or corrupted as well as the size. Potentially the size of some
1204   subsequent trailer could be erroneously extracted from the contents of
1205   that trailer, and since that size is used by client write an
1206   out-of-bounds read could occur and cause a crash or be otherwise
1207   processed by client write.
1208   
1209   The bug appears to have been born in 0761a51 (precedes 7.49.0).
1210   
1211   Closes https://github.com/curl/curl/pull/2231
1212
1213 - [Basuke Suzuki brought this change]
1214
1215   easy: fix connection ownership in curl_easy_pause
1216   
1217   Before calling Curl_client_chop_write(), change the owner of connection
1218   to the current Curl_easy handle. This will fix the issue #2217.
1219   
1220   Fixes https://github.com/curl/curl/issues/2217
1221   Closes https://github.com/curl/curl/pull/2221
1222
1223 Daniel Stenberg (9 Jan 2018)
1224 - [Dimitrios Apostolou brought this change]
1225
1226   system.h: Additionally check __LONG_MAX__ for defining curl_off_t
1227   
1228   __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
1229   in GCC 3.3.
1230   
1231   Closes #2216
1232
1233 - COPYING: it's 2018!
1234
1235 - progress: calculate transfer speed on milliseconds if possible
1236   
1237   to increase accuracy for quick transfers
1238   
1239   Fixes #2200
1240   Closes #2206
1241
1242 Jay Satiro (7 Jan 2018)
1243 - scripts: allow all perl scripts to be run directly
1244   
1245   - Enable execute permission (chmod +x)
1246   
1247   - Change interpreter to /usr/bin/env perl
1248   
1249   Closes https://github.com/curl/curl/pull/2222
1250
1251 - mail-rcpt.d: fix short-text description
1252
1253 - build: remove HAVE_LIMITS_H check
1254   
1255   .. because limits.h presence isn't optional, it's required by C89.
1256   
1257   Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
1258   
1259   Closes https://github.com/curl/curl/pull/2215
1260
1261 - openssl: fix memory leak of SSLKEYLOGFILE filename
1262   
1263   - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
1264     initialization.
1265   
1266   Caught by ASAN.
1267
1268 - Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
1269   
1270   This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
1271   
1272   SIZEOF_LONG should not be checked in system.h since that macro is only
1273   defined when building libcurl.
1274   
1275   Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
1276   Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
1277
1278 Michael Kaufmann (30 Dec 2017)
1279 - test1554: improve the error handling
1280
1281 - test1554: add global initialization and cleanup
1282
1283 Daniel Stenberg (29 Dec 2017)
1284 - curl_version_info.3: call the argument 'age'
1285   
1286   Reported-by: Pete Lomax
1287   Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
1288
1289 Patrick Monnerat (27 Dec 2017)
1290 - [Mikalai Ananenka brought this change]
1291
1292   brotli: data at the end of content can be lost
1293   
1294   Decoding loop implementation did not concern the case when all
1295   received data is consumed by Brotli decoder and the size of decoded
1296   data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
1297   For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
1298   can result in the loss of data at the end of content.
1299   
1300   Closes #2194
1301
1302 Jay Satiro (26 Dec 2017)
1303 - examples/cacertinmem: ignore cert-already-exists error
1304   
1305   - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
1306     since it's possible the cert may have already been loaded by libcurl.
1307   
1308   - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
1309     Instead have it direct the reader to this cacertinmem.c example.
1310   
1311   - Fix the CA certificate to use the right CA for example.com, Digicert.
1312   
1313   Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
1314   Reported-by: Thomas van Hesteren
1315   
1316   Closes https://github.com/curl/curl/pull/2182
1317
1318 - [Gisle Vanem brought this change]
1319
1320   tool_getparam: Support size modifiers for --max-filesize
1321   
1322   - Move the size modifier detection code from limit-rate to its own
1323     function so that it can also be used with max-filesize.
1324   
1325   Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
1326   
1327   For example --max-filesize 1G
1328   
1329   Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
1330   
1331   Closes https://github.com/curl/curl/pull/2179
1332
1333 Steve Holme (22 Dec 2017)
1334 - build: Fixed incorrect script termination from commit ad1dc10e61
1335
1336 - Makefile.vc: Added our standard copyright header
1337
1338 - winbuild: Added support for VC15
1339
1340 - build: Added Visual Studio 2017 project files
1341
1342 - build-wolfssl.bat: Added support for VC15
1343
1344 - build-openssl.bat: Added support for VC15
1345
1346 Jay Satiro (22 Dec 2017)
1347 - [Dimitrios Apostolou brought this change]
1348
1349   curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
1350   
1351   Closes https://github.com/curl/curl/pull/2186
1352
1353 - [Mattias Fornander brought this change]
1354
1355   examples/rtsp: fix error handling macros
1356   
1357   Closes https://github.com/curl/curl/pull/2185
1358
1359 Patrick Monnerat (20 Dec 2017)
1360 - curl_easy_reset: release mime-related data.
1361   
1362   Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
1363   functions dealing with UserDefined structure contents.
1364   This avoids memory leakages on curl-generated part mime headers.
1365   New test 2073 checks this using the cli tool --next option: it
1366   triggers a valgrind error if bug is present.
1367   
1368   Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
1369   Reported-by: Martin Galvan
1370
1371 - content_encoding: rework zlib_inflate
1372   
1373   - When zlib version is < 1.2.0.4, process gzip trailer before considering
1374   extra data as an error.
1375   - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
1376   and minimize corrupt data output.
1377   - Do not try to restart deflate decompression in raw mode if output has
1378   started or if the leading data is not available anymore.
1379   - New test 232 checks inflating raw-deflated content.
1380   
1381   Closes #2068
1382
1383 - brotli: allow compiling with version 0.6.0.
1384   
1385   Some error codes were not yet defined in brotli 0.6.0: do not issue code
1386   for them in this case.
1387
1388 Daniel Stenberg (13 Dec 2017)
1389 - CURLOPT_READFUNCTION.3: refer to argument with correct name
1390   
1391   Bug: #2175
1392   
1393   [ci skip]
1394
1395 - rand: add a clang-analyzer work-around
1396   
1397   scan-build would warn on a potential access of an uninitialized
1398   buffer. I deem it a false positive and had to add this somewhat ugly
1399   work-around to silence it.
1400
1401 - krb5: fix a potential access of uninitialized memory
1402   
1403   A scan-build warning.
1404
1405 - conncache: fix a return code [regression]
1406   
1407   This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
1408   out by scan-build!
1409
1410 - curl: support >256 bytes warning messsages
1411   
1412   Bug: #2174
1413
1414 Michael Kaufmann (12 Dec 2017)
1415 - libssh: fix a syntax error in configure.ac
1416   
1417   Follow-up to c92d2e1
1418   
1419   Closes #2172
1420
1421 Daniel Stenberg (12 Dec 2017)
1422 - examples/smtp-mail.c: use separate defines for options and mail
1423   
1424   ... to make it clearer that the options want address-only, while the
1425   headers in an email can also have the real name.
1426   
1427   Assisted-by: Sean MacLennan
1428
1429 - THANKS: added missing names
1430   
1431   ... as I reran the contrithanks script after the mailmap name fixups.
1432
1433 - mailmap: added/clarified several names
1434
1435 - setopt: less *or equal* than INT_MAX/1000 should be fine
1436   
1437   ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
1438   CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
1439   
1440   Reported-by: Dominik Hölzl
1441   Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
1442   
1443   Closes #2173
1444
1445 - [Dmitry Kostjuchenko brought this change]
1446
1447   vtls: replaced getenv() with curl_getenv()
1448   
1449   Fixed undefined symbol of getenv() which does not exist when compiling
1450   for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
1451   curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
1452   is defined.
1453   
1454   Closes #2171
1455
1456 - RELEASE-NOTES: synced with 3b9ea70ee
1457
1458 - TODO: Expose tried IP addresses that failed
1459   
1460   Suggested-by: Rainer Canavan
1461   
1462   Closes #2126
1463
1464 - curl.1: mention http:// and https:// as valid proxy prefixes
1465
1466 - curl.1: documented two missing valid exit codes
1467
1468 - CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
1469
1470 - Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
1471   
1472   This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
1473   
1474   It was actually added rather recently in 8e8afa82cbb629 due to a crash
1475   that would otherwise happen in the RTSP code. As I don't think we've
1476   fixed that behavior yet, we better keep this work-around until we have
1477   fixed it better.
1478
1479 Michael Kaufmann (10 Dec 2017)
1480 - tests: mark data files as non-executable in git
1481
1482 - tests: update .gitignore for libtests
1483
1484 Daniel Stenberg (10 Dec 2017)
1485 - multi_done: prune DNS cache
1486   
1487   Prune the DNS cache immediately after the dns entry is unlocked in
1488   multi_done. Timed out entries will then get discarded in a more orderly
1489   fashion.
1490   
1491   Test506 is updated
1492   
1493   Reported-by: Oleg Pudeyev
1494   
1495   Fixes #2169
1496   Closes #2170
1497
1498 - mailmap: fixup two old git Author "aliases"
1499
1500 Jay Satiro (10 Dec 2017)
1501 - openssl: Disable file buffering for Win32 SSLKEYLOGFILE
1502   
1503   Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
1504   like it does for other platforms. However, the Windows CRT does not
1505   actually support line buffering (_IOLBF) and will use full buffering
1506   (_IOFBF) instead. We can't use full buffering because multiple processes
1507   may be writing to the file and that could lead to corruption, and since
1508   full buffering is the only buffering available this commit disables
1509   buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
1510   
1511   Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
1512
1513 Daniel Stenberg (10 Dec 2017)
1514 - RESOLVE: output verbose text when trying to set a duplicate name
1515   
1516   ... to help users understand what is or isn't done!
1517
1518 - CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
1519
1520 - [John DeHelian brought this change]
1521
1522   sftp: allow quoted commands to use relative paths
1523   
1524   Closes #1900
1525
1526 Jay Satiro (8 Dec 2017)
1527 - [Richard Alcock brought this change]
1528
1529   CURLOPT_PRIVATE.3: fix grammar
1530   
1531   - Change "never does nothing" double-negative to "never does anything".
1532   
1533   Closes https://github.com/curl/curl/pull/2168
1534
1535 Daniel Stenberg (8 Dec 2017)
1536 - curl: remove __EMX__ #ifdefs
1537   
1538   These are OS/2-specific things added to the code in the year 2000. They
1539   were always ugly. If there's any user left, they still don't need it
1540   done this way.
1541   
1542   Closes #2166
1543
1544 Jay Satiro (8 Dec 2017)
1545 - openssl: improve data-pending check for https proxy
1546   
1547   - Allow proxy_ssl to be checked for pending data even when connssl does
1548     not yet have an SSL handle.
1549   
1550   This change is for posterity. Currently there doesn't seem to be a code
1551   path that will cause a pending data check when proxyssl could have
1552   pending data and the connssl handle doesn't yet exist [1].
1553   
1554   [1]: Recall that an https proxy connection starts out in connssl but if
1555   the destination is also https then the proxy SSL backend data is moved
1556   from connssl to proxyssl, which means connssl handle is temporarily
1557   empty until an SSL handle for the destination can be created.
1558   
1559   Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
1560   
1561   Closes https://github.com/curl/curl/pull/1916
1562
1563 Daniel Stenberg (8 Dec 2017)
1564 - curl: don't set CURLOPT_INTERLEAVEDATA
1565   
1566   That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
1567   and that option isn't set or used by the curl tool!
1568   
1569   Updates the 9 tests that verify --libcurl
1570   
1571   Closes #2167
1572
1573 - curl.h: remove incorrect comment about ERRORBUFFER
1574   
1575   ... error messages are _not_ sent to stderr if this is not set.
1576
1577 - [Michael Felt brought this change]
1578
1579   configure: add AX_CODE_COVERAGE only if using gcc
1580   
1581   Fixes #2076
1582   Closes #2125
1583
1584 - curl: limit -# update frequency for unknown total size
1585   
1586   Make it use a max 10Hz update frequency for this case as well. Return
1587   early if the "point" hasn't moved since last invoke.
1588   
1589   Reported-by: Elliot Saba
1590   
1591   Fixes #2158
1592   Closes #2163
1593
1594 - BINDINGS: another PostgreSQL client
1595   
1596   ...the former link is dead.
1597   
1598   Reported-by: Frank Gevaerts
1599
1600 - [Zachary Seguin brought this change]
1601
1602   CONNECT: keep close connection flag in http_connect_state struct
1603   
1604   Fixes #2088
1605   Closes #2157
1606
1607 - [Per Malmberg brought this change]
1608
1609   include: get netinet/in.h before linux/tcp.h
1610   
1611   ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
1612   4.8.5)
1613   
1614   Closes #2160
1615
1616 - openldap: fix checksrc nits
1617
1618 - [Stepan Broz brought this change]
1619
1620   openldap: add commented out debug possibilities
1621   
1622   ... to aid debugging openldap library using its built-in debug messages.
1623   
1624   Closes #2159
1625
1626 - examples: move threaded-shared-conn.c to the "complicated" ones
1627   
1628   ... due it relying on pthreads to link.
1629
1630 - RELEASE-NOTES: synced with b261c44e8
1631   
1632   ... and bump next release version to 7.58.0
1633
1634 - [Jan Ehrhardt brought this change]
1635
1636   URL: tolerate backslash after drive letter for FILE:
1637   
1638   ... as in "file://c:\some\path\curl.out"
1639   
1640   Reviewed-by: Matthew Kerwin
1641   Closes #2154
1642
1643 - [Randall S. Becker brought this change]
1644
1645   tests: added netinet/in6.h includes in test servers
1646
1647 - [Randall S. Becker brought this change]
1648
1649   configure: check for netinet/in6.h
1650   
1651   Needed by HPE NonStop NSE and NSX systems
1652   
1653   Fixes #2146
1654   Closes #2155
1655
1656 - curl-config: add --ssl-backends
1657   
1658   Lists all SSL backends that were enabled at build-time.
1659   
1660   Suggested-by: Oleg Pudeyev
1661   Fixes #2128
1662
1663 - conncache: only allow multiplexing within same multi handle
1664   
1665   Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
1666   only get additional transfers added to them if the existing connection
1667   is held by the same multi or easy handle. libcurl does not support doing
1668   HTTP/2 streams in different threads using a shared connection.
1669   
1670   Closes #2152
1671
1672 - threaded-shared-conn.c: fixed typo in commenta
1673
1674 - threaded-shared-conn.c: new example
1675
1676 - conncache: fix several lock issues
1677   
1678   If the lock is released before the dealings with the bundle is over, it may
1679   have changed by another thread in the mean time.
1680   
1681   Fixes #2132
1682   Fixes #2151
1683   Closes #2139
1684
1685 - libssh: remove dead code in sftp_qoute
1686   
1687   ... by removing a superfluous NULL pointer check that also confuses
1688   Coverity.
1689   
1690   Fixes #2143
1691   Closes #2153
1692
1693 - sasl_getmesssage: make sure we have a long enough string to pass
1694   
1695   For pop3/imap/smtp, added test 891 to somewhat verify the pop3
1696   case.
1697   
1698   For this, I enhanced the pingpong test server to be able to send back
1699   responses with LF-only instead of always using CRLF.
1700   
1701   Closes #2150
1702
1703 - libssh2: remove dead code from SSH_SFTP_QUOTE
1704   
1705   Figured out while reviewing code in the libssh backend. The pointer was
1706   checked for NULL after having been dereferenced, so we know it would
1707   always equal true or it would've crashed.
1708   
1709   Pointed-out-by: Nikos Mavrogiannopoulos
1710   
1711   Bug #2143
1712   Closes #2148
1713
1714 - ssh-libssh.c: please checksrc
1715
1716 Nikos Mavrogiannopoulos (4 Dec 2017)
1717 - libssh: fixed dereference in statvfs access
1718   
1719   The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
1720   handling fails.
1721   
1722   Fixes #2142
1723
1724 Daniel Stenberg (4 Dec 2017)
1725 - [Guitared brought this change]
1726
1727   RESOURCES: update spec names
1728   
1729   Closes #2145
1730
1731 Nikos Mavrogiannopoulos (3 Dec 2017)
1732 - libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
1733   
1734   The previous code was incorrectly following the libssh2 error detection
1735   for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
1736   
1737   Fixes #2142
1738   
1739   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1740
1741 - libssh: no need to call sftp_get_error as ssh_get_error is sufficient
1742   
1743   Fixes #2141
1744   
1745   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1746
1747 Daniel Stenberg (2 Dec 2017)
1748 - libssh: fix minor static code analyzer nits
1749   
1750   - remove superfluous NULL check which otherwise tricks the static code
1751   analyzers to assume NULL pointer dereferences.
1752   
1753   - fix fallthrough in switch()
1754   
1755   - indent mistake
1756
1757 - openssl: pkcs12 is supported by boringssl
1758   
1759   Removes another #ifdef for BoringSSL
1760   
1761   Pointed-out-by: David Benjamin
1762   
1763   Closes #2134
1764
1765 - [Jay Satiro brought this change]
1766
1767   travis: use pip2 instead of pip
1768   
1769   .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
1770   
1771   0.01s$ pip install --user cpp-coveralls
1772   /Users/travis/.travis/job_stages: line 57: pip: command not found
1773   
1774   Ref: https://github.com/travis-ci/travis-ci/issues/8829
1775   
1776   Closes https://github.com/curl/curl/pull/2133
1777
1778 - [Nikos Mavrogiannopoulos brought this change]
1779
1780   lib582: do not verify host for SFTP
1781   
1782   This SFTP test fails with libssh back-end due to failure to verify
1783   the peer. Disable peer verification in the test as there seems to
1784   be the intention of the test.
1785   
1786   Note that the libssh back-end automatically verifies the peer's
1787   host using the default known_hosts file.
1788   
1789   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1790
1791 - [Nikos Mavrogiannopoulos brought this change]
1792
1793   libssh: added SFTP support
1794   
1795   The SFTP back-end supports asynchronous reading only, limited
1796   to 32-bit file length. Writing is synchronous with no other
1797   limitations.
1798   
1799   This also brings keyboard-interactive authentication.
1800   
1801   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1802
1803 - [Nikos Mavrogiannopoulos brought this change]
1804
1805   symbols-in-versions: added new symbols with 7.56.3 version
1806   
1807   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1808
1809 - [Nikos Mavrogiannopoulos brought this change]
1810
1811   .travis.yml: added build --with-libssh
1812   
1813   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1814
1815 - [Nikos Mavrogiannopoulos brought this change]
1816
1817   libssh2: return CURLE_UPLOAD_FAILED on failure to upload
1818   
1819   This brings its in sync with the error code returned by the
1820   libssh backend.
1821   
1822   Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1823
1824 - [Nikos Mavrogiannopoulos brought this change]
1825
1826   libssh2: send the correct CURLE error code on scp file not found
1827   
1828   That also updates tests to expect the right error code
1829   
1830   libssh2 back-end returns CURLE_SSH error if the remote file
1831   is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
1832   which is sent by the libssh backend.
1833   
1834   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1835
1836 - [Nikos Mavrogiannopoulos brought this change]
1837
1838   Added support for libssh SSH SCP back-end
1839   
1840   libssh is an alternative library to libssh2.
1841   https://www.libssh.org/
1842   
1843   That patch set also introduces support for ECDSA
1844   ed25519 keys, as well as gssapi authentication.
1845   
1846   Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1847
1848 - RELEASE-NOTES: synced with af8cc7a69
1849
1850 - curlver: towards 7.57.1
1851
1852 - [W. Mark Kubacki brought this change]
1853
1854   lib: don't export all symbols, just everything curl_*
1855   
1856   Absent any 'symbol map' or script to limit what gets exported, static
1857   linking of libraries previously resulted in a libcurl with curl's and
1858   those other symbols being (re-)exported.
1859   
1860   This did not happen if 'versioned symbols' were enabled (which is not
1861   the default) because then a version script is employed.
1862   
1863   This limits exports to everything starting in 'curl_*'., which is
1864   what "libcurl.vers" exports.
1865   
1866   This avoids strange side-effects such as with mixing methods
1867   from system libraries and those erroneously offered by libcurl.
1868   
1869   Closes #2127
1870
1871 - [Johannes Schindelin brought this change]
1872
1873   SSL: Avoid magic allocation of SSL backend specific data
1874   
1875   Originally, my idea was to allocate the two structures (or more
1876   precisely, the connectdata structure and the four SSL backend-specific
1877   strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
1878   that they all could be free()d together.
1879   
1880   However, getting the alignment right is tricky. Too tricky.
1881   
1882   So let's just bite the bullet and allocate the SSL backend-specific
1883   data separately.
1884   
1885   As a consequence, we now have to be very careful to release the memory
1886   allocated for the SSL backend-specific data whenever we release any
1887   connectdata.
1888   
1889   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1890   
1891   Closes #2119
1892
1893 - examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
1894   
1895   Reported-by: Dima Tisnek
1896
1897 - travis: add boringssl build
1898   
1899   Uses a separate build without --enable-debug and no valgrind.
1900   
1901   The debug option causes far too many warnings in boringssl's headers
1902   (C++ comments, trailing commas etc).  Valgrind triggers some false
1903   positive errors in thread-local data used by boringssl.
1904   
1905   Closes #2118
1906
1907 Version 7.57.0 (29 Nov 2017)
1908
1909 Daniel Stenberg (29 Nov 2017)
1910 - RELEASE-NOTES: curl 7.57.0
1911
1912 - THANKS: added contributors from 7.57.0 release
1913
1914 - openssl: fix boringssl build again
1915   
1916   commit d3ab7c5a21e broke the boringssl build since it doesn't have
1917   RSA_flags(), so we disable that code block for boringssl builds.
1918   
1919   Reported-by: W. Mark Kubacki
1920   Fixes #2117
1921
1922 - curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
1923
1924 - libcurl-share.3: the connection cache is shareable now
1925
1926 - global_init: ignore CURL_GLOBAL_SSL's absense
1927   
1928   This bit is no longer used. It is not clear what it meant for users to
1929   "init the TLS" in a world with different TLS backends and since the
1930   introduction of multissl, libcurl didn't properly work if inited without
1931   this bit set.
1932   
1933   Not a single user responded to the call for users of it:
1934   https://curl.haxx.se/mail/lib-2017-11/0072.html
1935   
1936   Reported-by: Evgeny Grin
1937   Assisted-by: Jay Satiro
1938   
1939   Fixes #2089
1940   Fixes #2083
1941   Closes #2107
1942
1943 - ntlm: avoid integer overflow for malloc size
1944   
1945   Reported-by: Alex Nichols
1946   Assisted-by: Kamil Dudka and Max Dymond
1947   
1948   CVE-2017-8816
1949   
1950   Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
1951
1952 - wildcardmatch: fix heap buffer overflow in setcharset
1953   
1954   The code would previous read beyond the end of the pattern string if the
1955   match pattern ends with an open bracket when the default pattern
1956   matching function is used.
1957   
1958   Detected by OSS-Fuzz:
1959   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
1960   
1961   CVE-2017-8817
1962   
1963   Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
1964
1965 - [Jay Satiro brought this change]
1966
1967   url: fix alignment of ssl_backend_data struct
1968   
1969   - Align the array of ssl_backend_data on a max 32 byte boundary.
1970   
1971   8 is likely to be ok but I went with 32 for posterity should one of
1972   the ssl_backend_data structs change to contain a larger sized variable
1973   in the future.
1974   
1975   Prior to this change (since dev 70f1db3, release 7.56) the connectdata
1976   structure was undersized by 4 bytes in 32-bit builds with ssl enabled
1977   because long long * was mistakenly used for alignment instead of
1978   long long, with the intention being an 8 byte boundary. Also long long
1979   may not be an available type.
1980   
1981   The undersized connectdata could lead to oob read/write past the end in
1982   what was expected to be the last 4 bytes of the connection's secondary
1983   socket https proxy ssl_backend_data struct (the secondary socket in a
1984   connection is used by ftp, others?).
1985   
1986   Closes https://github.com/curl/curl/issues/2093
1987   
1988   CVE-2017-8818
1989   
1990   Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
1991
1992 - ssh: remove check for a NULL pointer (!)
1993   
1994   With this check present, scan-build warns that we might dereference this
1995   point in other places where it isn't first checked for NULL. Thus, if it
1996   *can* be NULL we have a problem on a few places. However, this pointer
1997   should not be possible to be NULL here so I remove the check and thus
1998   also three different scan-build warnings.
1999   
2000   Closes #2111
2001
2002 - [Matthew Kerwin brought this change]
2003
2004   test: add test for bad UNC/SMB path in file: URL
2005
2006 - [Matthew Kerwin brought this change]
2007
2008   test: add tests to ensure basic file: URLs
2009
2010 - [Matthew Kerwin brought this change]
2011
2012   URL: update "file:" URL handling
2013   
2014   * LOTS of comment updates
2015   * explicit error for SMB shares (e.g. "file:////share/path/file")
2016   * more strict handling of authority (i.e. "//localhost/")
2017   * now accepts dodgy old "C:|" drive letters
2018   * more precise handling of drive letters in and out of Windows
2019     (especially recognising both "file:c:/" and "file:/c:/")
2020   
2021   Closes #2110
2022
2023 - metalink: fix memory-leak and NULL pointer dereference
2024   
2025   Reported by scan-build
2026   
2027   Closes #2109
2028
2029 - [Alessandro Ghedini brought this change]
2030
2031   connect: add support for new TCP Fast Open API on Linux
2032   
2033   The new API added in Linux 4.11 only requires setting a socket option
2034   before connecting, without the whole sento() machinery.
2035   
2036   Notably, this makes it possible to use TFO with SSL connections on Linux
2037   as well, without the need to mess around with OpenSSL (or whatever other
2038   SSL library) internals.
2039   
2040   Closes #2056
2041
2042 - make: fix "make distclean"
2043   
2044   Fixes #2097
2045   Closes #2108
2046
2047 - RELEASE-NOTES: synced with 31f18d272
2048
2049 Jay Satiro (23 Nov 2017)
2050 - connect: improve the bind error message
2051   
2052   eg consider a non-existent interface eth8, curl --interface eth8
2053   
2054   Before: curl: (45) Could not resolve host: eth8
2055   After: curl: (45) Couldn't bind to 'eth8'
2056   
2057   Bug: https://github.com/curl/curl/issues/2104
2058   Reported-by: Alfonso Martone
2059
2060 Daniel Stenberg (23 Nov 2017)
2061 - examples/rtsp: clear RANGE again after use
2062   
2063   Fixes #2106
2064   Reported-by: youngchopin on github
2065
2066 - [Michael Kaufmann brought this change]
2067
2068   test1264: verify URL with space in host name being rejected
2069
2070 - url: reject ASCII control characters and space in host names
2071   
2072   Host names like "127.0.0.1 moo" would otherwise be accepted by some
2073   getaddrinfo() implementations.
2074   
2075   Updated test 1034 and 1035 accordingly.
2076   
2077   Fixes #2073
2078   Closes #2092
2079
2080 - Curl_open: fix OOM return error correctly
2081   
2082   Closes #2098
2083
2084 - http2: fix "Value stored to 'end' is never read" scan-build error
2085
2086 - http2: fix "Value stored to 'hdbuf' is never read" scan-build error
2087
2088 - openssl: fix "Value stored to 'rc' is never read" scan-build error
2089
2090 - mime: fix "Value stored to 'sz' is never read" scan-build error
2091
2092 - Curl_llist_remove: fix potential NULL pointer deref
2093   
2094   Fixes a scan-build warning.
2095
2096 - ntlm: remove unnecessary NULL-check to please scan-build
2097
2098 - BUGS: spellchecked
2099
2100 Jay Satiro (18 Nov 2017)
2101 - [fmmedeiros brought this change]
2102
2103   examples/curlx: Fix code style
2104   
2105   - Add braces around multi-line if statement.
2106   
2107   Closes https://github.com/curl/curl/pull/2096
2108
2109 Daniel Stenberg (17 Nov 2017)
2110 - resolve: allow IP address within [] brackets
2111   
2112   ... so that IPv6 addresses can be passed like they can for connect-to
2113   and how they're used in URLs.
2114   
2115   Added test 1324 to verify
2116   Reported-by: Alex Malinovich
2117   
2118   Fixes #2087
2119   Closes #2091
2120
2121 - [Pavol Markovic brought this change]
2122
2123   macOS: Fix missing connectx function with Xcode version older than 9.0
2124   
2125   The previous fix https://github.com/curl/curl/pull/1788 worked just for
2126   Xcode 9. This commit extends the fix to older Xcode versions effectively
2127   by not using connectx function.
2128   
2129   Fixes https://github.com/curl/curl/issues/1330
2130   Fixes https://github.com/curl/curl/issues/2080
2131   Closes https://github.com/curl/curl/pull/1336
2132   Closes #2082
2133
2134 - [Dirk Feytons brought this change]
2135
2136   openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
2137   
2138   Fixes #2079
2139   Closes #2081
2140
2141 - TODO: ignore private IP addresses in PASV response
2142   
2143   Closes #1455
2144
2145 - RELEASE-NOTES: synced with ae7369b6d
2146
2147 Michael Kaufmann (14 Nov 2017)
2148 - URL: return error on malformed URLs with junk after IPv6 bracket
2149   
2150   Follow-up to aadb7c7. Verified by new test 1263.
2151   
2152   Closes #2072
2153
2154 Daniel Stenberg (14 Nov 2017)
2155 - INTERNALS: we may use libidn2 now, not libidn
2156
2157 Patrick Monnerat (13 Nov 2017)
2158 - zlib/brotli: only include header files in modules needing them
2159   
2160   There is a conflict on symbol 'free_func' between openssl/crypto.h and
2161   zlib.h on AIX. This is an attempt to resolve it.
2162   
2163   Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
2164   Reported-By: Michael Felt
2165
2166 Daniel Stenberg (13 Nov 2017)
2167 - SMB: fix uninitialized local variable
2168   
2169   Reported-by: Brian Carpenter
2170
2171 - [Orgad Shaneh brought this change]
2172
2173   connect.c: remove executable bit on file
2174   
2175   Closes #2071
2176
2177 - [hsiao yi brought this change]
2178
2179   README.md: fixed layout
2180   
2181   Closes #2069
2182
2183 - setopt: split out curl_easy_setopt() to its own file
2184   
2185   ... to make url.c smaller.
2186   
2187   Closes #1944
2188
2189 Jay Satiro (10 Nov 2017)
2190 - [John Starks brought this change]
2191
2192   cmake: Add missing setmode check
2193   
2194   Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
2195   curl will corrupt binary files when writing them to stdout on Windows.
2196   
2197   Closes https://github.com/curl/curl/pull/2067
2198
2199 Daniel Stenberg (10 Nov 2017)
2200 - curl_share_setopt: va_end was not called if conncache errors
2201   
2202   CID 984459, detected by Coverity
2203
2204 Sergei Nikulov (10 Nov 2017)
2205 - [John Starks brought this change]
2206
2207   cmake: Correctly include curl.rc in Windows builds (#2064)
2208   
2209   Update CMakeLists.txt to add curl.rc to the correct list.
2210
2211 Daniel Stenberg (9 Nov 2017)
2212 - RELEASE-NOTES: synced with 32828cc4f
2213
2214 - [Luca Boccassi brought this change]
2215
2216   --interface: add support for Linux VRF
2217   
2218   The --interface command (CURLOPT_INTERFACE option) already uses
2219   SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
2220   address first, which fails in case the user passes a VRF.
2221   
2222   Try to use the socket option immediately and parse it as a fallback
2223   instead.  Update the documentation to mention this feature, and that it
2224   requires the binary to be ran by root or with CAP_NET_RAW capabilities
2225   for this to work.
2226   
2227   Closes #2024
2228
2229 - curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
2230   
2231   Closes #2043
2232
2233 - examples: add shared-connection-cache
2234
2235 - test1554: verify connection cache sharing
2236
2237 - share: add support for sharing the connection cache
2238
2239 - imap: deal with commands case insensitively
2240   
2241   As documented in RFC 3501 section 9:
2242   https://tools.ietf.org/html/rfc3501#section-9
2243   
2244   Closes #2061
2245
2246 - connect: store IPv6 connection status after valid connection
2247   
2248   ... previously it would store it already in the happy eyeballs stage
2249   which could lead to the IPv6 bit being set for an IPv4 connection,
2250   leading to curl not wanting to do EPSV=>PASV for FTP transfers.
2251   
2252   Closes #2053
2253
2254 - curl_multi_fdset.3: emphasize curl_multi_timeout
2255   
2256   ... even when there's no socket to wait for, the timeout can still be
2257   very short.
2258
2259 Jay Satiro (9 Nov 2017)
2260 - content_encoding: fix inflate_stream for no bytes available
2261   
2262   - Don't call zlib's inflate() when avail_in stream bytes is 0.
2263   
2264   This is a follow up to the parent commit 19e66e5. Prior to that change
2265   libcurl's inflate_stream could call zlib's inflate even when no bytes
2266   were available, causing inflate to return Z_BUF_ERROR, and then
2267   inflate_stream would treat that as a hard error and return
2268   CURLE_BAD_CONTENT_ENCODING.
2269   
2270   According to the zlib FAQ, Z_BUF_ERROR is not fatal.
2271   
2272   This bug would happen randomly since packet sizes are arbitrary. A test
2273   of 10,000 transfers had 55 fail (ie 0.55%).
2274   
2275   Ref: https://zlib.net/zlib_faq.html#faq05
2276   
2277   Closes https://github.com/curl/curl/pull/2060
2278
2279 Patrick Monnerat (7 Nov 2017)
2280 - content_encoding: do not write 0 length data
2281
2282 Daniel Stenberg (6 Nov 2017)
2283 - fnmatch: remove dead code
2284   
2285   There was a duplicate check for backslashes in the setcharset()
2286   function.
2287   
2288   Coverity CID 1420611
2289
2290 - url: remove unncessary NULL-check
2291   
2292   Since 'conn' won't be NULL in there and we also access the pointer in
2293   there without the check.
2294   
2295   Coverity CID 1420610
2296
2297 Viktor Szakats (6 Nov 2017)
2298 - src/Makefile.m32: fix typo in brotli lib customization
2299   
2300   Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
2301
2302 - Makefile.m32: allow to customize brotli libs
2303   
2304   It adds the ability to link against static brotli libs.
2305   
2306   Also fix brotli include path.
2307
2308 Patrick Monnerat (5 Nov 2017)
2309 - travis: add a job with brotli enabled
2310
2311 - [Viktor Szakats brought this change]
2312
2313   Makefile.m32: add brotli support
2314
2315 - HTTP: implement Brotli content encoding
2316   
2317   This uses the brotli external library (https://github.com/google/brotli).
2318   Brotli becomes a feature: additional curl_version_info() bit and
2319   structure fields are provided for it and CURLVERSION_NOW bumped.
2320   
2321   Tests 314 and 315 check Brotli content unencoding with correct and
2322   erroneous data.
2323   
2324   Some tests are updated to accomodate with the now configuration dependent
2325   parameters of the Accept-Encoding header.
2326
2327 - HTTP: support multiple Content-Encodings
2328   
2329   This is implemented as an output streaming stack of unencoders, the last
2330   calling the client write procedure.
2331   
2332   New test 230 checks this feature.
2333   
2334   Bug: https://github.com/curl/curl/pull/2002
2335   Reported-By: Daniel Bankhead
2336
2337 Jay Satiro (4 Nov 2017)
2338 - url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
2339   
2340   Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
2341   check on this option is incorrect; we have to accept any value.
2342   
2343   Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
2344   erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
2345   
2346   Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
2347
2348 Daniel Stenberg (4 Nov 2017)
2349 - ntlm: avoid malloc(0) for zero length passwords
2350   
2351   It triggers an assert() when built with memdebug since malloc(0) may
2352   return NULL *or* a valid pointer.
2353   
2354   Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
2355   
2356   Assisted-by: Max Dymond
2357   Closes #2054
2358
2359 - RELEASE-NOTES: synced with ee8016b3d
2360
2361 - curl: speed up handling of many URLs
2362   
2363   By properly keeping track of the last entry in the list of URLs/uploads
2364   to handle, curl now avoids many meaningless traverses of the list which
2365   speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
2366   URLs).
2367   
2368   Added test 1291, to verify that it doesn't take ages - but we don't have
2369   any detection of "too slow" command in the test suite.
2370   
2371   Reported-by: arainchik on github
2372   Fixes #1959
2373   Closes #2052
2374
2375 - curl: pass through [] in URLs instead of calling globbing error
2376   
2377   Assisted-by: Per Lundberg
2378   Fixes #2044
2379   Closes #2046
2380   Closes #2048
2381
2382 - CURLOPT_INFILESIZE: accept -1
2383   
2384   Regression since f121575
2385   
2386   Reported-by: Petr Voytsik
2387   Fixes #2047
2388
2389 Jay Satiro (2 Nov 2017)
2390 - url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
2391   
2392   Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
2393   erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
2394
2395 Dan Fandrich (1 Nov 2017)
2396 - http2: Fixed OOM handling in upgrade request
2397   
2398   This caused the torture tests on test 1800 to fail.
2399
2400 - tests: Fixed torture tests on tests 556 and 650
2401   
2402   Test cleanup after OOM wasn't being consistently performed.
2403
2404 Daniel Stenberg (1 Nov 2017)
2405 - CURLOPT_MAXREDIRS: allow -1 as a value
2406   
2407   ... which is valid according to documentation. Regression since
2408   f121575c0b5f.
2409   
2410   Verified now in test 501.
2411   
2412   Reported-by: cbartl on github
2413   Fixes #2038
2414   Closes #2039
2415
2416 - include: remove conncache.h inclusion from where its not needed
2417
2418 Jay Satiro (1 Nov 2017)
2419 - url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
2420   
2421   .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
2422   
2423   Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
2424   erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
2425   
2426   Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
2427   Reported-by: Andrew Lambert
2428
2429 Daniel Stenberg (31 Oct 2017)
2430 - cookie: avoid NULL dereference
2431   
2432   ... when expiring old cookies.
2433   
2434   Reported-by: Pavel Gushchin
2435   Fixes #2032
2436   Closes #2035
2437
2438 Marcel Raad (30 Oct 2017)
2439 - memdebug: use send/recv signature for curl_dosend/curl_dorecv
2440   
2441   This avoids build errors and warnings caused by implicit casts.
2442   
2443   Closes https://github.com/curl/curl/pull/2031
2444
2445 Daniel Stenberg (30 Oct 2017)
2446 - [Juro Bystricky brought this change]
2447
2448   mkhelp.pl: support reproducible build
2449   
2450   Do not generate line with the current date, such as:
2451   
2452   * Generation time: Tue Oct-24 18:01:41 2017
2453   
2454   This will improve reproducibility. The generated string is only
2455   part of a comment, so there should be no adverse consequences.
2456   
2457   Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
2458   
2459   closes #2026
2460
2461 Dan Fandrich (30 Oct 2017)
2462 - runtests.pl: Fixed typo in message
2463
2464 Daniel Stenberg (30 Oct 2017)
2465 - curlx: the timeval functions are no longer provided as curlx_*
2466   
2467   Pointed-out-by: Dmitri Tikhonov
2468   Bug: #2034
2469
2470 - select: update comments
2471   
2472   s/curlx_tvnow/Curl_now
2473
2474 - INTERNALS: remove curlx_tv* functions no longer provided
2475
2476 - [Dmitri Tikhonov brought this change]
2477
2478   timeval: use mach time on MacOS
2479   
2480   If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
2481   
2482   closes #2033
2483
2484 monnerat (29 Oct 2017)
2485 - [Patrick Monnerat brought this change]
2486
2487   cli tool: improve ";type=" handling in -F option arguments
2488
2489 - [Patrick Monnerat brought this change]
2490
2491   cli tool: in -F option arg, comma is a delimiter for files only
2492   
2493   Also upgrade test 1133 to cover this case and clarify man page about
2494   form data quoting.
2495   
2496   Bug: https://github.com/curl/curl/issues/2022
2497   Reported-By: omau on github
2498
2499 Daniel Stenberg (29 Oct 2017)
2500 - timeleft: made two more users of Curl_timeleft use timediff_t
2501
2502 Jakub Zakrzewski (28 Oct 2017)
2503 - cmake: Export libcurl and curl targets to use by other cmake projects
2504   
2505   The config files define curl and libcurl targets as imported targets
2506   CURL::curl and CURL::libcurl. For backward compatibility with CMake-
2507   provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
2508   also set.
2509   
2510   Closes #1879
2511
2512 Daniel Stenberg (28 Oct 2017)
2513 - RELEASE-NOTES: synced with f20cbac97
2514
2515 - [Florin Petriuc brought this change]
2516
2517   auth: Added test cases for RFC7616
2518   
2519   Updated docs to include support for RFC7616
2520   
2521   Signed-off-by: Florin <petriuc.florin@gmail.com>
2522   
2523   Closes #1934
2524
2525 - [Florin Petriuc brought this change]
2526
2527   auth: add support for RFC7616 - HTTP Digest access authentication
2528   
2529   Signed-off-by: Florin <petriuc.florin@gmail.com>
2530
2531 - [Daniel Bankhead brought this change]
2532
2533   TODO: support multiple Content-Encodings
2534   
2535   Closes #2002
2536
2537 - ROADMAP: cleanup
2538   
2539   Removed done stuff. Removed entries no longer considered for the near
2540   term.
2541
2542 - [Magicansk brought this change]
2543
2544   ROADMAP.md: spelling fixes
2545   
2546   Closes #2028
2547
2548 - Curl_timeleft: change return type to timediff_t
2549   
2550   returning 'time_t' is problematic when that type is unsigned and we
2551   return values less than zero to signal "already expired", used in
2552   several places in the code.
2553   
2554   Closes #2021
2555
2556 - appveyor: add a win32 build
2557
2558 - setopt: fix CURLOPT_SSH_AUTH_TYPES option read
2559   
2560   Regression since f121575c0b5f
2561   
2562   Reported-by: Rob Cotrone
2563
2564 Marcel Raad (27 Oct 2017)
2565 - resolvers: only include anything if needed
2566   
2567   This avoids warnings about unused stuff.
2568   
2569   Closes https://github.com/curl/curl/pull/2023
2570
2571 Daniel Stenberg (27 Oct 2017)
2572 - HELP-US: rename the subtitle too since the label is changed
2573   
2574   "PR-welcome" was the former name.
2575
2576 - curl_setup.h: oops, shorten the too long line
2577
2578 - [Martin Storsjo brought this change]
2579
2580   curl_setup: Improve detection of CURL_WINDOWS_APP
2581   
2582   If WINAPI_FAMILY is defined, it should be safe to try to include
2583   winapifamily.h to check what the define evaluates to.
2584   
2585   This should fix detection of CURL_WINDOWS_APP if building with
2586   _WIN32_WINNT set to 0x0600.
2587   
2588   Closes #2025
2589
2590 Jay Satiro (26 Oct 2017)
2591 - transfer: Fix chunked-encoding upload bug
2592   
2593   - When uploading via chunked-encoding don't compare file size to bytes
2594     sent to determine whether the upload has finished.
2595   
2596   Chunked-encoding adds its own overhead which why the bytes sent is not
2597   equal to the file size. Prior to this change if a file was uploaded in
2598   chunked-encoding and its size was known it was possible that the upload
2599   could end prematurely without sending the final few chunks. That would
2600   result in a server hang waiting for the remaining data, likely followed
2601   by a disconnect.
2602   
2603   The scope of this bug is limited to some arbitrary file sizes which have
2604   not been determined. One size that triggers the bug is 475020.
2605   
2606   Bug: https://github.com/curl/curl/issues/2001
2607   Reported-by: moohoorama@users.noreply.github.com
2608   
2609   Closes https://github.com/curl/curl/pull/2010
2610
2611 Daniel Stenberg (26 Oct 2017)
2612 - timeval: make timediff_t also work on 32bit windows
2613   
2614   ... by using curl_off_t for the typedef if time_t is larger than 4
2615   bytes.
2616   
2617   Reported-by: Gisle Vanem
2618   Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
2619   mmitcomment-25205058
2620   Closes #2019
2621
2622 - curl_fnmatch: return error on illegal wildcard pattern
2623   
2624   ... instead of doing an infinite loop!
2625   
2626   Added test 1162 to verify.
2627   
2628   Reported-by: Max Dymond
2629   Fixes #2015
2630   Closes #2017
2631
2632 - [Max Dymond brought this change]
2633
2634   wildcards: don't use with non-supported protocols
2635   
2636   Fixes timeouts in the fuzzing tests for non-FTP protocols.
2637   
2638   Closes #2016
2639
2640 - [Max Dymond brought this change]
2641
2642   multi: allow table handle sizes to be overridden
2643   
2644   Allow users to specify their own hash define for
2645   CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
2646   
2647   Closes #1982
2648
2649 - time: rename Curl_tvnow to Curl_now
2650   
2651   ... since the 'tv' stood for timeval and this function does not return a
2652   timeval struct anymore.
2653   
2654   Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
2655   clean up the descriptive comments.
2656   
2657   Closes #2011
2658
2659 - ftplistparser: follow-up cleanup to remove PL_ERROR()
2660
2661 - [Max Dymond brought this change]
2662
2663   ftplistparser: free off temporary memory always
2664   
2665   When using the FTP list parser, ensure that the memory that's
2666   allocated is always freed.
2667   
2668   Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
2669   Closes #2013
2670
2671 - timediff: return timediff_t from the time diff functions
2672   
2673   ... to cater for systems with unsigned time_t variables.
2674   
2675   - Renamed the functions to curlx_timediff and Curl_timediff_us.
2676   
2677   - Added overflow protection for both of them in either direction for
2678     both 32 bit and 64 bit time_ts
2679   
2680   - Reprefixed the curlx_time functions to use Curl_*
2681   
2682   Reported-by: Peter Piekarski
2683   Fixes #2004
2684   Closes #2005
2685
2686 - [Paul Howarth brought this change]
2687
2688   libtest: Add required test libraries for lib1552 and lib1553
2689   
2690   They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
2691   
2692   This fixes build failures on Fedora 13.
2693   
2694   Closes #2006
2695
2696 - [Alessandro Ghedini brought this change]
2697
2698   libcurl-tutorial.3: fix typo
2699   
2700   closes #2008
2701
2702 Alessandro Ghedini (23 Oct 2017)
2703 - curl_mime_filedata.3: fix typos
2704
2705 Daniel Stenberg (23 Oct 2017)
2706 - RELEASE-NOTES: clean slate towards 7.57.0
2707
2708 - [Max Dymond brought this change]
2709
2710   travis: exit if any steps fail
2711   
2712   We don't expect any steps to fail in travis. Exit the script if they do.
2713   
2714   Closes #1966
2715
2716 Version 7.56.1 (23 Oct 2017)
2717
2718 Daniel Stenberg (23 Oct 2017)
2719 - RELEASE-NOTES: 7.56.1
2720
2721 - THANKS: update at 7.56.1 release time
2722
2723 - [Jon DeVree brought this change]
2724
2725   mk-ca-bundle: Remove URL for aurora
2726   
2727   Aurora is no longer used by Mozilla
2728   https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
2729
2730 - [Jon DeVree brought this change]
2731
2732   mk-ca-bundle: Fix URL for NSS
2733   
2734   The 'tip' is the most recent branch committed to, this should be
2735   'default' like the URLs for the browser are.
2736   
2737   Closes #1998
2738
2739 - imap: if a FETCH response has no size, don't call write callback
2740   
2741   CVE-2017-1000257
2742   
2743   Reported-by: Brian Carpenter and 0xd34db347
2744   Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
2745
2746 - ftp: reject illegal IP/port in PASV 227 response
2747   
2748   ... by using range checks. Among other things, this avoids an undefined
2749   behavior for a left shift that could happen on negative or very large
2750   values.
2751   
2752   Closes #1997
2753   
2754   Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
2755
2756 Patrick Monnerat (20 Oct 2017)
2757 - test653: check reuse of easy handle after mime data change
2758   
2759   See issue #1999
2760
2761 - mime: do not reuse previously computed multipart size
2762   
2763   The contents might have changed: size must be recomputed.
2764   
2765   Reported-by: moteus on github
2766   Fixes #1999
2767
2768 - test308: disable if MultiSSL feature enabled
2769   
2770   Even if OpenSSL is enabled, it might not be the default backend when
2771   multi-ssl is enabled, causing the test to fail.
2772
2773 - runtests: support MultiSSL client feature
2774
2775 - vtls: change struct Curl_ssl `close' field name to `close_one'.
2776   
2777   On OS/400, `close' is an ASCII system macro that corrupts the code if
2778   not used in a context not targetting the close() system API.
2779
2780 - os400: add missing symbols in config file.
2781   
2782   Also adjust makefile to renamed files and warn about installation dirs mix-up.
2783
2784 - test652: curl_mime_data + base64 encoder with large contents
2785
2786 - mime: limit bas64-encoded lines length to 76 characters
2787
2788 Daniel Stenberg (16 Oct 2017)
2789 - RELEASE-NOTES: synced with f121575c0
2790
2791 - setopt: range check most long options
2792   
2793   ... filter early instead of risking "funny values" having to be dealt
2794   with elsewhere.
2795
2796 - setopt: avoid integer overflows when setting millsecond values
2797   
2798   ... that are multiplied by 1000 when stored.
2799   
2800   For 32 bit long systems, the max value accepted (2147483 seconds) is >
2801   596 hours which is unlikely to ever be set by a legitimate application -
2802   and previously it didn't work either, it just caused undefined behavior.
2803   
2804   Also updated the man pages for these timeout options to mention the
2805   return code.
2806   
2807   Closes #1938
2808
2809 Viktor Szakats (15 Oct 2017)
2810 - makefile.m32: allow to override gcc, ar and ranlib
2811   
2812   Allow to ovverride certain build tools, making it possible to
2813   use LLVM/Clang to build curl. The default behavior is unchanged.
2814   To build with clang (as offered by MSYS2), these settings can
2815   be used:
2816   
2817   CURL_CC=clang
2818   CURL_AR=llvm-ar
2819   CURL_RANLIB=llvm-ranlib
2820   
2821   Closes https://github.com/curl/curl/pull/1993
2822
2823 - ldap: silence clang warning
2824   
2825   Use memset() to initialize a structure to avoid LLVM/Clang warning:
2826   ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
2827   
2828   Closes https://github.com/curl/curl/pull/1992
2829
2830 Daniel Stenberg (14 Oct 2017)
2831 - runtests: use valgrind for torture as well
2832   
2833   NOTE: it makes them terribly slow. I recommend only using valgrind for
2834   specific torture tests or using lots of patience.
2835
2836 - memdebug: trace send, recv and socket
2837   
2838   ... to allow them to be included in torture tests too.
2839   
2840   closes #1980
2841
2842 - configure: remove the C++ compiler check
2843   
2844   ... we used it only for the fuzzer, which we now have in a separate git
2845   repo.
2846   
2847   Closes #1990
2848
2849 Patrick Monnerat (13 Oct 2017)
2850 - mime: do not call failf() if easy handle is NULL.
2851
2852 Daniel Stenberg (13 Oct 2017)
2853 - test651: curl_formadd with huge COPYCONTENTS
2854
2855 - mime: fix the content reader to handle >16K data properly
2856   
2857   Reported-by: Jeroen Ooms
2858   Closes #1988
2859
2860 Patrick Monnerat (12 Oct 2017)
2861 - mime: keep "text/plain" content type if user-specified.
2862   
2863   Include test cases in 554, 587, 650.
2864   
2865   Fixes https://github.com/curl/curl/issues/1986
2866
2867 - cli tool: use file2memory() to buffer stdin in -F option.
2868   
2869   Closes PR https://github.com/curl/curl/pull/1985
2870
2871 - cli tool: reimplement stdin buffering in -F option.
2872   
2873   If stdin is not a regular file, its content is memory-buffered to enable
2874   a possible data "rewind".
2875   In all cases, stdin data size is determined before real use to avoid
2876   having an unknown part's size.
2877   
2878   --libcurl generated code is left as an unbuffered stdin fread/fseek callback
2879   part with unknown data size.
2880   
2881   Buffering is not supported in deprecated curl_formadd() API.
2882
2883 Daniel Stenberg (12 Oct 2017)
2884 - winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
2885
2886 - HELP-US: the label "PR-welcome" is now renamed to "help wanted"
2887   
2888   following the new github "standard"
2889
2890 - RELEASE-NOTES: synced with 5505df7d2
2891
2892 Jay Satiro (11 Oct 2017)
2893 - [Artak Galoyan brought this change]
2894
2895   url: Update current connection SSL verify params in setopt
2896   
2897   Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
2898   connection updates the current connection's (i.e.'connectdata'
2899   structure) appropriate ssl_config (and ssl_proxy_config) structures
2900   variables, making these options effective for ongoing connection.
2901   
2902   This functionality was available before and was broken by the
2903   following change:
2904   "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
2905   CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
2906   
2907   Bug: https://github.com/curl/curl/issues/1941
2908   
2909   Closes https://github.com/curl/curl/pull/1951
2910
2911 Daniel Stenberg (11 Oct 2017)
2912 - [David Benjamin brought this change]
2913
2914   openssl: don't use old BORINGSSL_YYYYMM macros
2915   
2916   Those were temporary things we'd add and remove for our own convenience
2917   long ago. The last few stayed around for too long as an oversight but
2918   have since been removed. These days we have a running
2919   BORINGSSL_API_VERSION counter which is bumped when we find it
2920   convenient, but 2015-11-19 was quite some time ago, so just check
2921   OPENSSL_IS_BORINGSSL.
2922   
2923   Closes #1979
2924
2925 - test950; verify SMTP with custom request
2926
2927 - ftpserver: support case insensitive commands
2928
2929 - smtp_done: free data before returning (on send failure)
2930   
2931   ... as otherwise it could leak that memory.
2932   
2933   Detected by OSS-fuzz:
2934   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
2935   
2936   Assisted-by: Max Dymond
2937   Closes #1977
2938
2939 - FTP: URL decode path for dir listing in nocwd mode
2940   
2941   Reported-by: Zenju on github
2942   
2943   Test 244 added to verify
2944   Fixes #1974
2945   Closes #1976
2946
2947 - test298: verify --ftp-method nowcwd with URL encoded path
2948   
2949   Ref: #1974
2950
2951 - CURLOPT_XFERINFODATA.3: fix duplicate see also
2952
2953 - CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
2954
2955 - FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
2956
2957 - openssl: enable PKCS12 support for !BoringSSL
2958   
2959   Enable PKCS12 for all non-boringssl builds without relying on configure
2960   or cmake checks.
2961   
2962   Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
2963   Reported-by: Christian Schmitz
2964   Closes #1948
2965
2966 - [Kristiyan Tsaklev brought this change]
2967
2968   curl: don't pass semicolons when parsing Content-Disposition
2969   
2970   Test 1422 updated to verify.
2971   
2972   Closes #1964
2973
2974 Patrick Monnerat (9 Oct 2017)
2975 - mime: properly unbind mime structure in curl_mime_free().
2976   
2977   This allows freeing a mime structure bound to the easy handle before
2978   curl_easy_cleanup().
2979   
2980   Fixes #1970.
2981
2982 Daniel Stenberg (9 Oct 2017)
2983 - RTSP: avoid integer overflow on funny RTSP response
2984   
2985   ... like a very large non-existing RTSP version number.
2986   
2987   Added test 577 to verify.
2988   
2989   Detected by OSS-fuzz.
2990   Closes #1969
2991
2992 Patrick Monnerat (8 Oct 2017)
2993 - ftpserver: properly reset $ftptargetdir.
2994
2995 - test643: verify curl_mime_subparts() rejects cyclic additions.
2996
2997 - mime: refuse to add subparts to one of their own descendants.
2998   
2999   Reported-by: Alexey Melnichuk
3000   Fixes #1962
3001
3002 - mime: avoid resetting a part's encoder when part's contents change.
3003
3004 - mime: improve unbinding top multipart from easy handle.
3005   
3006   Also avoid dangling pointers in referencing parts.
3007
3008 Daniel Stenberg (8 Oct 2017)
3009 - RELEASE-NOTES: synced with a4c1c75da30af1
3010
3011 - curlver.h: next expected release is 7.57.0
3012
3013 Patrick Monnerat (8 Oct 2017)
3014 - mime: be tolerant about setting twice the same header list in a part.
3015
3016 - docs: clarify form/mime usage of non-regular data files.
3017
3018 Daniel Stenberg (8 Oct 2017)
3019 - Revert "multi_done: wait for name resolve to finish if still ongoing"
3020   
3021   This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
3022   
3023   Caused memory leaks in the fuzzer, needs to be done differently.
3024   
3025   Disable test 1553 for now too, as it causes memory leaks without this
3026   commit!
3027
3028 - remove_handle: call multi_done() first, then clear dns cache pointer
3029   
3030   Closes #1960
3031
3032 - multi_done: wait for name resolve to finish if still ongoing
3033   
3034   ... as we must clean up memory.
3035
3036 - pingpong: return error when trying to send without connection
3037   
3038   When imap_done() got called before a connection is setup, it would try
3039   to "finish up" and dereffed a NULL pointer.
3040   
3041   Test case 1553 managed to reproduce. I had to actually use a host name
3042   to try to resolve to slow it down, as using the normal local server IP
3043   will make libcurl get a connection in the first curl_multi_perform()
3044   loop and then the bug doesn't trigger.
3045   
3046   Fixes #1953
3047   Assisted-by: Max Dymond
3048
3049 Dan Fandrich (6 Oct 2017)
3050 - tests: added flaky keyword to tests 587 and 644
3051   
3052   These are around 5% flaky in my Linux x86 autobuilds.
3053
3054 Marcel Raad (6 Oct 2017)
3055 - vtls: fix warnings with --disable-crypto-auth
3056   
3057   When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
3058   are not used.
3059
3060 Daniel Stenberg (6 Oct 2017)
3061 - multi_cleanup: call DONE on handles that never got that
3062   
3063   ... fixes a memory leak with at least IMAP when remove_handle is never
3064   called and the transfer is abruptly just abandoned early.
3065   
3066   Test 1552 added to verify
3067   
3068   Detected by OSS-fuzz
3069   Assisted-by: Max Dymond
3070   Closes #1954
3071
3072 - [Benbuck Nason brought this change]
3073
3074   strtoofft: Remove extraneous null check
3075   
3076   Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
3077   argument.
3078   
3079   Closes #1952
3080
3081 - openssl: fix build without HAVE_OPAQUE_EVP_PKEY
3082   
3083   Reported-by: Javier Sixto
3084   Fixes #1955
3085   Closes #1956
3086
3087 Viktor Szakats (6 Oct 2017)
3088 - lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
3089   
3090   The source code is now prepared to handle the case when both
3091   Win32 Crypto and OpenSSL/NSS crypto backends are enabled
3092   at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
3093   whenever the targeted Windows version supports it. Since this
3094   matches the minimum Windows version supported by curl
3095   (Windows 2000), enable it unconditionally for the Win32 platform.
3096   
3097   This in turn enables SMB (and SMBS) protocol support whenever
3098   Win32 Crypto is available, regardless of what other crypto backends
3099   are enabled.
3100   
3101   Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
3102   
3103   Closes https://github.com/curl/curl/pull/1943
3104
3105 Daniel Stenberg (5 Oct 2017)
3106 - build: fix --disable-crypto-auth
3107   
3108   Reported-by: Wyatt O'Day
3109   Fixes #1945
3110   Closes #1947
3111
3112 Jay Satiro (5 Oct 2017)
3113 - [Nick Zitzmann brought this change]
3114
3115   darwinssl: add support for TLSv1.3
3116   
3117   Closes https://github.com/curl/curl/pull/1794
3118
3119 Daniel Stenberg (4 Oct 2017)
3120 - [Felix Kaiser brought this change]
3121
3122   docs: fix typo in curl_mime_data_cb man page
3123   
3124   Closes #1946
3125
3126 Viktor Szakats (4 Oct 2017)
3127 - lib/Makefile.m32: allow customizing dll suffixes
3128   
3129   - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
3130     libcurl dll name. Useful to add `-x64` to 64-bit builds so that
3131     it can live in the same directory as the 32-bit one. By default
3132     this is empty.
3133   
3134   - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
3135     generated import library (implib) for libcurl .dll. It defaults
3136     to `dll`, and it's useful to modify that to `.dll` to have the
3137     standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
3138   
3139   Closes https://github.com/curl/curl/pull/1942
3140
3141 Daniel Stenberg (4 Oct 2017)
3142 - [Max Dymond brought this change]
3143
3144   fuzzer: move to using external curl-fuzzer
3145   
3146   Use the external curl-fuzzer repository for fuzzing.
3147   
3148   Closes #1923
3149
3150 - failf: skip the sprintf() if there are no consumers
3151   
3152   Closes #1936
3153
3154 - ftp: UBsan fixup 'pointer index expression overflowed'
3155   
3156   Closes #1939
3157
3158 - RELEASE-PROCEDURE: update the release schedule
3159
3160 Version 7.56.0 (4 Oct 2017)
3161
3162 Daniel Stenberg (4 Oct 2017)
3163 - RELEASE-NOTES: curl 7.56.0
3164
3165 - THANKS: added new 7.56.0 contributors
3166
3167 Jay Satiro (4 Oct 2017)
3168 - build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
3169   
3170   Ref: https://github.com/curl/curl/issues/1002
3171
3172 Michael Kaufmann (3 Oct 2017)
3173 - idn: fix source code comment
3174
3175 - vtls: compare and clone ssl configs properly
3176   
3177   Compare these settings in Curl_ssl_config_matches():
3178   - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
3179   - random_file (CURLOPT_RANDOM_FILE)
3180   - egdsocket (CURLOPT_EGDSOCKET)
3181   
3182   Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
3183   and copy the setting "sessionid" unconditionally.
3184   
3185   This means that reusing connections that are secured with a client
3186   certificate is now possible, and the statement "TLS session resumption
3187   is disabled when a client certificate is used" in the old advisory at
3188   https://curl.haxx.se/docs/adv_20170419.html is obsolete.
3189   
3190   Reviewed-by: Daniel Stenberg
3191   
3192   Closes #1917
3193
3194 - proxy: read the "no_proxy" variable only if necessary
3195   
3196   Reviewed-by: Daniel Stenberg
3197   
3198   Closes #1919
3199
3200 Patrick Monnerat (3 Oct 2017)
3201 - libcurl-tutorial: add casts in example to avoid compilation warnings.
3202
3203 Daniel Stenberg (3 Oct 2017)
3204 - examples: bring back curl_formadd-using examples
3205   
3206   ... now with a -formadd suffix. While the new mime API is introduced in
3207   7.56.0 we must acknowledge that lots of users can't upgrade their curl
3208   versions immediately.
3209
3210 - test1153: verify quoted double-qoutes in PWD response
3211
3212 - FTP: zero terminate the entry path even on bad input
3213   
3214   ... a single double quote could leave the entry path buffer without a zero
3215   terminating byte. CVE-2017-1000254
3216   
3217   Test 1152 added to verify.
3218   
3219   Reported-by: Max Dymond
3220   Bug: https://curl.haxx.se/docs/adv_20171004.html
3221
3222 Jay Satiro (2 Oct 2017)
3223 - [Sergei Nikulov brought this change]
3224
3225   cmake: disable tests and man generation if perl/nroff not found
3226   
3227   Fixes https://github.com/curl/curl/issues/1500
3228   Reported-by: Jay Satiro
3229   
3230   Fixes https://github.com/curl/curl/pull/1662
3231   Assisted-by: Tom Seddon
3232   Assisted-by: dpull@users.noreply.github.com
3233   Assisted-by: elelel@users.noreply.github.com
3234   
3235   Closes https://github.com/curl/curl/pull/1924
3236
3237 Patrick Monnerat (2 Oct 2017)
3238 - libcurl-tutorial: fix two typos.
3239
3240 - TODO: remove deprecated form API items.
3241
3242 - libcurl-tutorial: describe MIME API and deprecate form API.
3243   
3244   Include a guide to form/mime API conversion.
3245
3246 Daniel Stenberg (30 Sep 2017)
3247 - cookie: fix memory leak if path was set twice in header
3248   
3249   ... this will let the second occurance override the first.
3250   
3251   Added test 1161 to verify.
3252   
3253   Reported-by: Max Dymond
3254   Fixes #1932
3255   Closes #1933
3256
3257 Dan Fandrich (30 Sep 2017)
3258 - test650: Use variable replacement to set the host address and port
3259   
3260   Otherwise, the test fails when the -b test option is used to set a
3261   different test port range.
3262
3263 - Set and use more necessary options when some protocols are disabled
3264   
3265   When curl and libcurl are built with some protocols disabled, they stop
3266   setting and receiving some options that don't make sense with those
3267   protocols.  In particular, when HTTP is disabled many options aren't set
3268   that are used only by HTTP.  However, some options that appear to be
3269   HTTP-only are actually used by other protocols as well (some despite
3270   having HTTP in the name) and should be set, but weren't. This change now
3271   causes some of these options to be set and used for more (or for all)
3272   protocols. In particular, this fixes tests 646 through 649 in an
3273   HTTP-disabled build, which use the MIME API in the mail protocols.
3274
3275 Daniel Stenberg (29 Sep 2017)
3276 - test1160: verifies cookie leak for large cookies
3277   
3278   The fix done in 20ea22ff735
3279
3280 - cookie: fix memory leak on oversized rejection
3281   
3282   Regression brought by 2bc230de63b
3283   
3284   Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
3285   Assisted-by: Max Dymond
3286   
3287   Closes #1930
3288
3289 - [Anders Bakken brought this change]
3290
3291   connect: fix race condition with happy eyeballs timeout
3292   
3293   The timer should be started after conn->connecttime is set. Otherwise
3294   the timer could expire without this condition being true:
3295   
3296       /* should we try another protocol family? */
3297       if(i == 0 && conn->tempaddr[1] == NULL &&
3298         curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
3299   
3300   Ref: #1928
3301
3302 Michael Kaufmann (28 Sep 2017)
3303 - docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
3304   
3305   Closes #1922
3306
3307 - docs: clarify the use of environment variables for proxy
3308   
3309   Closes #1921
3310
3311 - http: add custom empty headers to repeated requests
3312   
3313   Closes #1920
3314
3315 - reuse_conn: don't copy flags that are known to be equal
3316   
3317   A connection can only be reused if the flags "conn_to_host" and
3318   "conn_to_port" match. Therefore it is not necessary to copy these flags
3319   in reuse_conn().
3320   
3321   Closes #1918
3322
3323 Daniel Stenberg (27 Sep 2017)
3324 - curl.h: include <sys/select.h> on cygwin too
3325   
3326   When building with -std=c++14 on cygwin, this header won't be
3327   automatically included as it otherwise is.
3328   
3329   The <sys/select.h> include decision should ideally be reversed and be
3330   avoided where that header file doesn't exist.
3331   
3332   Reported-by: Ian Fette
3333   Fixes #1925
3334
3335 - RELEASE-NOTES: synced with d8ab5dc50
3336
3337 Michael Kaufmann (24 Sep 2017)
3338 - tests: adjust .gitignore for new tests
3339
3340 Jay Satiro (23 Sep 2017)
3341 - ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
3342   
3343   .. and include the core NTLM header in all NTLM-related source files.
3344   
3345   Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
3346   but did not include vtls.h where it was defined.
3347   
3348   Closes https://github.com/curl/curl/pull/1911
3349
3350 Daniel Stenberg (23 Sep 2017)
3351 - file_range: avoid integer overflow when figuring out byte range
3352   
3353   When trying to bump the value with one and the value is already at max,
3354   it causes an integer overflow.
3355   
3356   Closes #1908
3357   Detected by oss-fuzz:
3358   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
3359   
3360   Assisted-by: Max Dymond
3361
3362 Michael Kaufmann (23 Sep 2017)
3363 - tests: fix a compiler warning in test 643
3364
3365 Jay Satiro (23 Sep 2017)
3366 - symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
3367   
3368   - Use spaces instead of tabs as the delimiter.
3369   
3370   Follow up to 7c52b12 which added the entry. The entry had used tabs but
3371   the symbol-scan parser doesn't recognize tabs and would fail the symbol.
3372
3373 Viktor Szakats (22 Sep 2017)
3374 - metalink: fix NSS issue in MultiSSL builds
3375   
3376   In MultiSSL mode (i.e. when more than one SSL backend is compiled
3377   in), we cannot use the compile time flag `USE_NSS` as indicator that
3378   the NSS backend is in use. As far as Metalink is concerned, the SSL
3379   backend is only used for MD5, SHA-1 and SHA-256 calculations,
3380   therefore one of the available SSL backends is selected at compile
3381   time, in a strict order of preference.
3382   
3383   Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
3384   to determine whether the SSL backend used for Metalink is the NSS
3385   backend, and use that to guard the code that wants to de-initialize
3386   the NSS-specific data structure.
3387   
3388   Ref: https://github.com/curl/curl/pull/1848
3389
3390 - ntlm: use strict order for SSL backend #if branches
3391   
3392   With the recently introduced MultiSSL support multiple SSL backends
3393   can be compiled into cURL That means that now the order of the SSL
3394   
3395   One option would be to use the same SSL backend as was configured
3396   via `curl_global_sslset()`, however, NTLMv2 support would appear
3397   to be available only with some SSL backends. For example, when
3398   eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
3399   support for NTLMv1 using Windows' Crypt API, it specifically did
3400   *not* introduce NTLMv2 support using Crypt API at the same time.
3401   
3402   So let's select one specific SSL backend for NTLM support when
3403   compiled with multiple SSL backends, using a priority order such
3404   that we support NTLMv2 even if only one compiled-in SSL backend can
3405   be used for that.
3406   
3407   Ref: https://github.com/curl/curl/pull/1848
3408
3409 Daniel Stenberg (22 Sep 2017)
3410 - symbols-in-versions: add CURLSSLSET_NO_BACKENDS
3411   
3412   ...fixup from b8e0fe19ec
3413
3414 - imap: quote atoms properly when escaping characters
3415   
3416   Updates test 800 to verify
3417   
3418   Fixes #1902
3419   Closes #1903
3420
3421 - tests: make the imap server not verify user+password
3422   
3423   ... as the test cases themselves do that and it makes it easier to add
3424   crazy test cases.
3425   
3426   Test 800 updated to use user name + password that need quoting.
3427   
3428   Test 856 updated to trigger an auth fail differently.
3429   
3430   Ref: #1902
3431
3432 - vtls: provide curl_global_sslset() even in non-SSL builds
3433   
3434   ... it just returns error:
3435   
3436   Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
3437   Reported-by: Marcel Raad
3438   
3439   Closes #1906
3440
3441 Patrick Monnerat (22 Sep 2017)
3442 - form/mime: field names are not allowed to contain zero-valued bytes.
3443   
3444   Also suppress length argument of curl_mime_name() (names are always
3445   zero-terminated).
3446
3447 Daniel Stenberg (21 Sep 2017)
3448 - [Dirk Feytons brought this change]
3449
3450   openssl: only verify RSA private key if supported
3451   
3452   In some cases the RSA key does not support verifying it because it's
3453   located on a smart card, an engine wants to hide it, ...
3454   Check the flags on the key before trying to verify it.
3455   OpenSSL does the same thing internally; see ssl/ssl_rsa.c
3456   
3457   Closes #1904
3458
3459 Marcel Raad (21 Sep 2017)
3460 - examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
3461   
3462   Otherwise, typecheck-gcc.h warns on MinGW-w64.
3463
3464 Patrick Monnerat (20 Sep 2017)
3465 - mime: rephrase the multipart output state machine (#1898) ...
3466   
3467   ... in hope coverity will like it much.
3468
3469 - mime: fix an explicit null dereference (#1899)
3470
3471 Daniel Stenberg (20 Sep 2017)
3472 - curl: check fseek() return code and bail on error
3473   
3474   Detected by coverity. CID 1418137.
3475
3476 - smtp: fix memory leak in OOM
3477   
3478   Regression since ce0881edee
3479   
3480   Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
3481   torture testing.
3482
3483 - RELEASE-NOTES: synced with 5fe85587c
3484
3485 - [Pavel Pavlov brought this change]
3486
3487   cookies: use lock when using CURLINFO_COOKIELIST
3488   
3489   Closes #1896
3490
3491 - [Max Dymond brought this change]
3492
3493   ossfuzz: changes before merging the generated corpora
3494   
3495   Before merging in the oss-fuzz corpora from Google, there are some changes
3496   to the fuzzer.
3497   - Add a read corpus script, to display corpus files nicely.
3498   - Change the behaviour of the fuzzer so that TLV parse failures all now
3499     go down the same execution paths, which should reduce the size of the
3500     corpora.
3501   - Make unknown TLVs a failure to parse, which should decrease the size
3502     of the corpora as well.
3503   
3504   Closes #1881
3505
3506 - mime:escape_string minor clarification change
3507   
3508   ... as it also removes a warning with old gcc versions.
3509   
3510   Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html
3511   Reported-by: Ben Greear
3512
3513 - [Max Dymond brought this change]
3514
3515   ossfuzz: don't write out to stdout
3516   
3517   Don't make the fuzzer write out to stdout - instead write some of the
3518   contents to a memory block so we exercise the data output code but
3519   quietly.
3520   
3521   Closes #1885
3522
3523 - cookies: reject oversized cookies
3524   
3525   ... instead of truncating them.
3526   
3527   There's no fixed limit for acceptable cookie names in RFC 6265, but the
3528   entire cookie is said to be less than 4096 bytes (section 6.1). This is
3529   also what browsers seem to implement.
3530   
3531   We now allow max 5000 bytes cookie header. Max 4095 bytes length per
3532   cookie name and value. Name + value together may not exceed 4096 bytes.
3533   
3534   Added test 1151 to verify
3535   
3536   Bug: https://curl.haxx.se/mail/lib-2017-09/0062.html
3537   Reported-by: Kevin Smith
3538   
3539   Closes #1894
3540
3541 - travis: on mac, don't install openssl or libidn
3542   
3543   - openssl is already installed and causes warnings when trying to
3544     install again
3545   
3546   - libidn isn't used these days, and homebrew doesn't seem to have a
3547     libidn2 package to replace with easily
3548   
3549   Closes #1895
3550
3551 - curl: make str2udouble not return values on error
3552   
3553   ... previously it would store a return value even when it returned
3554   error, which could make the value get used anyway!
3555   
3556   Reported-by: Brian Carpenter
3557   Closes #1893
3558
3559 Jay Satiro (18 Sep 2017)
3560 - socks: fix incorrect port number in SOCKS4 error message
3561   
3562   Prior to this change it appears the SOCKS5 port parsing was erroneously
3563   used for the SOCKS4 error message, and as a result an incorrect port
3564   would be shown in the error message.
3565   
3566   Bug: https://github.com/curl/curl/issues/1892
3567   Reported-by: Jackarain@users.noreply.github.com
3568
3569 - [Marc Aldorasi brought this change]
3570
3571   schannel: Support partial send for when data is too large
3572   
3573   Schannel can only encrypt a certain amount of data at once.  Instead of
3574   failing when too much data is to be sent at once, send as much data as
3575   we can and let the caller send the remaining data by calling send again.
3576   
3577   Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html
3578   
3579   Closes https://github.com/curl/curl/pull/1890
3580
3581 - [David Benjamin brought this change]
3582
3583   openssl: add missing includes
3584   
3585   lib/vtls/openssl.c uses OpenSSL APIs from BUF_MEM and BIO APIs. Include
3586   their headers directly rather than relying on other OpenSSL headers
3587   including things.
3588   
3589   Closes https://github.com/curl/curl/pull/1891
3590
3591 Daniel Stenberg (15 Sep 2017)
3592 - conversions: fix several compiler warnings
3593
3594 - server/getpart: provide dummy function to build conversion enabled
3595
3596 - non-ascii: use iconv() with 'char **' argument
3597   
3598   Bug: https://curl.haxx.se/mail/lib-2017-09/0031.html
3599
3600 - escape.c: error: pointer targets differ in signedness
3601
3602 - docs: clarify the CURLOPT_INTERLEAVE* options behavior
3603
3604 - [Max Dymond brought this change]
3605
3606   rtsp: Segfault in rtsp.c when using WRITEDATA
3607   
3608   If the INTERLEAVEFUNCTION is defined, then use that plus the
3609   INTERLEAVEDATA information when writing RTP. Otherwise, use
3610   WRITEFUNCTION and WRITEDATA.
3611   
3612   Fixes #1880
3613   Closes #1884
3614
3615 Marcel Raad (15 Sep 2017)
3616 - [Isaac Boukris brought this change]
3617
3618   tests: enable gssapi in travis-ci linux build
3619   
3620   Closes https://github.com/curl/curl/pull/1687
3621
3622 - [Isaac Boukris brought this change]
3623
3624   tests: add initial gssapi test using stub implementation
3625   
3626   The stub implementation is pre-loaded using LD_PRELOAD
3627   and emulates common gssapi uses (only builds if curl is
3628   initially built with gssapi support).
3629   
3630   The initial tests are currently disabled for debug builds
3631   as LD_PRELOAD is not used then.
3632   
3633   Ref: https://github.com/curl/curl/pull/1687
3634
3635 Daniel Stenberg (15 Sep 2017)
3636 - test1150: verify same host fetch using different ports over proxy
3637   
3638   Closes #1889
3639
3640 - URL: on connection re-use, still pick the new remote port
3641   
3642   ... as when a proxy connection is being re-used, it can still get a
3643   different remote port.
3644   
3645   Fixes #1887
3646   Reported-by: Oli Kingshott
3647
3648 - RELEASE-NOTES: synced with 87501e57f
3649
3650 - code style: remove wrong uses of multiple spaces
3651   
3652   Closes #1878
3653
3654 - checksrc: detect and warn for multiple spaces
3655
3656 - code style: use space after semicolon
3657
3658 - checksrc: verify space after semicolons
3659
3660 - code style: use spaces around pluses
3661
3662 - checksrc: detect and warn for lack of spaces next to plus signs
3663
3664 - code style: use spaces around equals signs
3665
3666 - checksrc: verify spaces around equals signs
3667   
3668   ... as the code style mandates.
3669
3670 - Curl_checkheaders: make it available for IMAP and SMTP too
3671   
3672   ... not only HTTP uses this now.
3673   
3674   Closes #1875
3675
3676 - travis: add build without HTTP/SMTP/IMAP
3677
3678 Jay Satiro (10 Sep 2017)
3679 - mbedtls: enable CA path processing
3680   
3681   CA path processing was implemented when mbedtls.c was added to libcurl
3682   in fe7590f, but it was never enabled.
3683   
3684   Bug: https://github.com/curl/curl/issues/1877
3685   Reported-by: SBKarr@users.noreply.github.com
3686
3687 Daniel Stenberg (8 Sep 2017)
3688 - rtsp: do not call fwrite() with NULL pointer FILE *
3689   
3690   If the default write callback is used and no destination has been set, a
3691   NULL pointer would be passed to fwrite()'s 4th argument.
3692   
3693   OSS-fuzz bug https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3327
3694   (not publicly open yet)
3695   
3696   Detected by OSS-fuzz
3697   Closes #1874
3698
3699 - configure: use -Wno-varargs on clang 3.9[.X] debug builds
3700   
3701   ... to avoid a clang bug
3702
3703 - [Max Dymond brought this change]
3704
3705   ossfuzz: add some more handled CURL options
3706   
3707   Add support for HEADER, COOKIE, RANGE, CUSTOMREQUEST, MAIL_RECIPIENT,
3708   MAIL_FROM and uploading data.
3709
3710 - configure: check for C++ compiler after C, to make it non-fatal
3711   
3712   The tests for object file/executable file extensions are presumably only
3713   done for the first of these macros in the configure file.
3714   
3715   Bug: https://github.com/curl/curl/pull/1851#issuecomment-327597515
3716   Reported-by: Marcel Raad
3717   Closes #1873
3718
3719 Patrick Monnerat (7 Sep 2017)
3720 - form API: add new test 650.
3721   
3722   Now that the form API is deprecated and not used anymore in curl tool,
3723   a lot of its features left untested. Test 650 attempts to check all these
3724   features not tested elsewhere.
3725
3726 Jay Satiro (7 Sep 2017)
3727 - configure: fix curl_off_t check's include order
3728   
3729   - Prepend srcdir include path instead of append.
3730   
3731   Prior to this change it was possible that during the check for the size
3732   of curl_off_t the include path of a user's already installed curl could
3733   come before the include path of the to-be-built curl, resulting in the
3734   system.h of the former being incorrectly included for that check.
3735   
3736   Closes https://github.com/curl/curl/pull/1870
3737
3738 Daniel Stenberg (7 Sep 2017)
3739 - [Jakub Zakrzewski brought this change]
3740
3741   KNOWN_BUGS: Remove CMake symbol hiding issue
3742   
3743   It has already been fixed in 6140dfc
3744
3745 - http-proxy: when not doing CONNECT, that phase is done immediately
3746   
3747   `conn->connect_state` is NULL when doing a regular non-CONNECT request
3748   over the proxy and should therefor be considered complete at once.
3749   
3750   Fixes #1853
3751   Closes #1862
3752   Reported-by: Lawrence Wagerfield
3753
3754 - [Johannes Schindelin brought this change]
3755
3756   OpenSSL: fix yet another mistake while encapsulating SSL backend data
3757   
3758   Another mistake in my manual fixups of the largely mechanical
3759   search-and-replace ("connssl->" -> "BACKEND->"), just like the previous
3760   commit concerning HTTPS proxies (and hence not caught during my
3761   earlier testing).
3762   
3763   Fixes #1855
3764   Closes #1871
3765   
3766   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3767
3768 - [Johannes Schindelin brought this change]
3769
3770   OpenSSL: fix erroneous SSL backend encapsulation
3771   
3772   In d65e6cc4f (vtls: prepare the SSL backends for encapsulated private
3773   data, 2017-06-21), this developer prepared for a separation of the
3774   private data of the SSL backends from the general connection data.
3775   
3776   This conversion was partially automated (search-and-replace) and
3777   partially manual (e.g. proxy_ssl's backend data).
3778   
3779   Sadly, there was a crucial error in the manual part, where the wrong
3780   handle was used: rather than connecting ssl[sockindex]' BIO to the
3781   proxy_ssl[sockindex]', we reconnected proxy_ssl[sockindex]. The reason
3782   was an incorrect location to paste "BACKEND->"... d'oh.
3783   
3784   Reported by Jay Satiro in https://github.com/curl/curl/issues/1855.
3785   
3786   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3787
3788 - [Jay Satiro brought this change]
3789
3790   vtls: fix memory corruption
3791   
3792   Ever since 70f1db321 (vtls: encapsulate SSL backend-specific data,
3793   2017-07-28), the code handling HTTPS proxies was broken because the
3794   pointer to the SSL backend data was not swapped between
3795   conn->ssl[sockindex] and conn->proxy_ssl[sockindex] as intended, but
3796   instead set to NULL (causing segmentation faults).
3797   
3798   [jes: provided the commit message, tested and verified the patch]
3799   
3800   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3801
3802 - vtls: switch to CURL_SHA256_DIGEST_LENGTH define
3803   
3804   ... instead of the prefix-less version since WolfSSL 3.12 now uses an
3805   enum with that name that causes build failures for us.
3806   
3807   Fixes #1865
3808   Closes #1867
3809   Reported-by: Gisle Vanem
3810
3811 - travis: add c-ares enabled builds linux + osx
3812   
3813   Closes #1868
3814
3815 - HISTORY: added some recent items
3816
3817 Jay Satiro (6 Sep 2017)
3818 - SSL: fix unused parameter warnings
3819
3820 Patrick Monnerat (6 Sep 2017)
3821 - mime: drop internal FILE * support.
3822   
3823   - The part kind MIMEKIND_FILE and associated code are suppressed.
3824   - Seek data origin offset not used anymore: suppressed.
3825   - MIMEKIND_NAMEDFILE renamed MIMEKIND_FILE; associated fields/functions
3826     renamed accordingly.
3827   - Curl_getformdata() processes stdin via a callback.
3828
3829 Daniel Stenberg (6 Sep 2017)
3830 - configure: remove --enable-soname-bump and SONAME_BUMP
3831   
3832   Back in 2008, (and commit 3f3d6ebe665f3) we changed the logic in how we
3833   determine the native type for `curl_off_t`. To really make sure we
3834   didn't break ABI without bumping SONAME, we introduced logic that
3835   attempted to detect that it would use a different size and thus not be
3836   compatible. We also provided a manual switch that allowed users to tell
3837   configure to bump SONAME by force.
3838   
3839   Today, we know of no one who ever got a SONAME bump auto-detected and we
3840   don't know of anyone who's using the manual bump feature. The auto-
3841   detection is also no longer working since we introduced defining
3842   curl_off_t in system.h (7.55.0).
3843   
3844   Finally, this bumping logic is not present in the cmake build.
3845   
3846   Closes #1861
3847
3848 Jay Satiro (6 Sep 2017)
3849 - [Gisle Vanem brought this change]
3850
3851   vtls: select ssl backend case-insensitive (follow-up)
3852   
3853   - Do a case-insensitive comparison of CURL_SSL_BACKEND env as well.
3854   
3855   - Change Curl_strcasecompare calls to strcasecompare
3856     (maps to the former but shorter).
3857   
3858   Follow-up to c290b8f.
3859   
3860   Bug: https://github.com/curl/curl/commit/c290b8f#commitcomment-24094313
3861   
3862   Co-authored-by: Jay Satiro
3863
3864 - openssl: Integrate Peter Wu's SSLKEYLOGFILE implementation
3865   
3866   This is an adaptation of 2 of Peter Wu's SSLKEYLOGFILE implementations.
3867   
3868   The first one, written for old OpenSSL versions:
3869   https://git.lekensteyn.nl/peter/wireshark-notes/tree/src/sslkeylog.c
3870   
3871   The second one, written for BoringSSL and new OpenSSL versions:
3872   https://github.com/curl/curl/pull/1346
3873   
3874   Note the first one is GPL licensed but the author gave permission to
3875   waive that license for libcurl.
3876   
3877   As of right now this feature is disabled by default, and does not have
3878   a configure option to enable it. To enable this feature define
3879   ENABLE_SSLKEYLOGFILE when building libcurl and set environment
3880   variable SSLKEYLOGFILE to a pathname that will receive the keys.
3881   
3882   And in Wireshark change your preferences to point to that key file:
3883   Edit > Preferences > Protocols > SSL > Master-Secret
3884   
3885   Co-authored-by: Peter Wu
3886   
3887   Ref: https://github.com/curl/curl/pull/1030
3888   Ref: https://github.com/curl/curl/pull/1346
3889   
3890   Closes https://github.com/curl/curl/pull/1866
3891
3892 Patrick Monnerat (5 Sep 2017)
3893 - mime: fix a trivial warning.
3894
3895 - mime: replace 'struct Curl_mimepart' by 'curl_mimepart' in encoder code.
3896   
3897   mime_state is now a typedef.
3898
3899 - mime: implement encoders.
3900   
3901   curl_mime_encoder() is operational and documented.
3902   curl tool -F option is extended with ";encoder=".
3903   curl tool --libcurl option generates calls to curl_mime_encoder().
3904   New encoder tests 648 & 649.
3905   Test 1404 extended with an encoder specification.
3906
3907 - runtests.pl: support attribute "nonewline" in part verify/upload.
3908
3909 - [Daniel Stenberg brought this change]
3910
3911   fixup data/test1135
3912
3913 - [Daniel Stenberg brought this change]
3914
3915   mime: unified to use the typedef'd mime structs everywhere
3916   
3917   ... and slightly edited to follow our code style better.
3918
3919 - [Daniel Stenberg brought this change]
3920
3921   curl.h: use lower case curl_mime* as for all public symbols
3922
3923 - [Daniel Stenberg brought this change]
3924
3925   docs/curl_mime_*.3: use correct variable types in examples
3926
3927 Kamil Dudka (5 Sep 2017)
3928 - openssl: use OpenSSL's default ciphers by default
3929   
3930   Up2date versions of OpenSSL maintain the default reasonably secure
3931   without breaking compatibility, so it is better not to override the
3932   default by curl.  Suggested at https://bugzilla.redhat.com/1483972
3933   
3934   Closes #1846
3935
3936 Viktor Szakats (5 Sep 2017)
3937 - examples/mime: minor example code fixes
3938
3939 Daniel Stenberg (5 Sep 2017)
3940 - docs/curl_mime_*.3: added examples
3941
3942 - configure: add MultiSSL to FEATURES when enabled
3943   
3944   ...for curl-config and its corresponding test 1014
3945
3946 - http-proxy: treat all 2xx as CONNECT success
3947   
3948   Added test 1904 to verify.
3949   
3950   Reported-by: Lawrence Wagerfield
3951   Fixes #1859
3952   Closes #1860
3953
3954 - MAIL-ETIQUETTE: added "1.9 Your emails are public"
3955
3956 - curl.h: fix "unused checksrc ignore", remove dangling reference
3957   
3958   ... to a README file that doesn't exist anymore
3959
3960 Viktor Szakats (4 Sep 2017)
3961 - docs: Update to secure URL versions
3962
3963 - mime: use CURL_ZERO_TERMINATED in examples
3964   
3965   and some minor whitespace fixes
3966
3967 Daniel Stenberg (4 Sep 2017)
3968 - schannel: return CURLE_SSL_CACERT on failed verification
3969   
3970   ... not *CACERT_BADFILE as it isn't really because of a bad file.
3971   
3972   Bug: https://curl.haxx.se/mail/lib-2017-09/0002.html
3973   Closes #1858
3974
3975 - test1135: fixed after bd8070085f9
3976
3977 - examples/post-callback: stop returning one byte at a time
3978   
3979   ... since people copy and paste code from this example and thus they get
3980   an inefficient POST operation without a good reason and sometimes
3981   without understanding why.
3982   
3983   Instead this now returns as much data as possible.
3984
3985 - RELEASE-NOTES: fixed the function counter script
3986
3987 - curl.h: make the curl_strequal() protos use the same style
3988   
3989   ... as the other functions. Makes it easier to machine-parse!
3990
3991 - docs: curl_mime_*.3 man page formatting edits
3992
3993 - RELEASE-NOTES: synced with 1ab9e9b50
3994
3995 Patrick Monnerat (4 Sep 2017)
3996 - lib: bump version info (soname). Adapt and reenable test 1135.
3997
3998 Daniel Stenberg (3 Sep 2017)
3999 - headers: move the global_sslset() proto from multi.h to curl.h
4000   
4001   As it was added to multi.h simply to not break test 1135, which now has
4002   been disabled due to the mime API addition anyway and su we can now move
4003   the sslset stuff to where the other curl_global_* prototypes are.
4004
4005 Patrick Monnerat (3 Sep 2017)
4006 - mime: fix signed/unsigned conversions.
4007   
4008   Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
4009
4010 Jay Satiro (3 Sep 2017)
4011 - tool_formparse: fix some trivial warnings
4012
4013 Patrick Monnerat (3 Sep 2017)
4014 - mime: use size_t instead of ssize_t in public API interface.
4015   
4016   To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED
4017   has been introduced.
4018   
4019   Documentation updated accordingly.
4020   
4021   symbols in versions updated. Added form API symbols deprecation info.
4022
4023 - mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().
4024   
4025   This feature is badly supported in Windows: as a replacement, a caller has
4026   to use curl_mime_data_cb() with fread, fseek and possibly fclose
4027   callbacks to process opened files.
4028   
4029   The cli tool and documentation are updated accordingly.
4030   
4031   The feature is however kept internally for form API compatibility, with
4032   the known caveats it always had.
4033   
4034   As a side effect, stdin size is not determined by the cli tool even if
4035   possible and this results in a chunked transfer encoding. Test 173 is
4036   updated accordingly.
4037
4038 - mime: fix some implicit curl_off_t --> size_t conversion warnings.
4039
4040 - mime: tests and examples.
4041   
4042   Additional mime-specific tests.
4043   Existing tests updated to reflect small differences (Expect: 100-continue,
4044   data size change due to empty lines, etc).
4045   Option -F headers= keyword added to tests.
4046   test1135 disabled until the entry point order change is resolved.
4047   New example smtp-mime.
4048   Examples postit2 and multi-post converted from form API to mime API.
4049
4050 - mime: use in curl cli tool instead of form API.
4051   
4052   Extended -F option syntax to support multipart mail messages.
4053   -F keyword headers= added to include custom headers in parts.
4054   Documentation upgraded.
4055
4056 - mime: new MIME API.
4057   
4058   Available in HTTP, SMTP and IMAP.
4059   Deprecates the FORM API.
4060   See CURLOPT_MIMEPOST.
4061   Lib code and associated documentation.
4062
4063 - test564: Add a warning comment about shell profile output.
4064   
4065   Shell profile output makes the SSH server failing and this problem reason
4066   is not easy to find when no hint is given.
4067
4068 - checksrc: disable SPACEBEFOREPAREN for case statement.
4069   
4070   The case keyword may be followed by a constant expression and thus should
4071   allow it to start with an open parenthesis.
4072
4073 - runtests.pl: allow <file[1-4]> tags in client section.
4074   
4075   This enables tests to create more than one file on the client side.
4076
4077 - runtests.pl: Apply strippart to upload too.
4078   
4079   This will allow substitution of boundaries in mail messages.
4080
4081 - Curl_base64_encode: always call with a real data handle.
4082   
4083   Some calls in different modules were setting the data handle to NULL, causing
4084   segmentation faults when using builds that enable character code conversions.
4085
4086 - non-ascii: allow conversion functions to be called with a NULL data handle.
4087
4088 - http: fix a memory leakage in checkrtspprefix().
4089
4090 Daniel Stenberg (2 Sep 2017)
4091 - [Max Dymond brought this change]
4092
4093   ossfuzz: Move to C++ for curl_fuzzer.
4094   
4095   Automake gets confused if you want to use C++ static libraries with C
4096   code - basically we need to involve the clang++ linker. The easiest way
4097   of achieving this is to rename the C code as C++ code. This gets us a
4098   bit further along the path and ought to be compatible with Google's
4099   version of clang.
4100
4101 - curl_global_sslset: select backend by name case insensitively
4102   
4103   Closes #1849
4104
4105 - [Max Dymond brought this change]
4106
4107   ossfuzz: additional seed corpora
4108   
4109   Create simple seed corpora for:
4110   - FTP
4111   - telnet
4112   - dict
4113   - tftp
4114   - imap
4115   - pop3
4116   
4117   based off the tests of the same number.
4118   
4119   Closes #1842
4120
4121 - [Max Dymond brought this change]
4122
4123   ossfuzz: moving towards the ideal integration
4124   
4125   - Start with the basic code from the ossfuzz project.
4126   - Rewrite fuzz corpora to be binary files full of Type-Length-Value
4127     data, and write a glue layer in the fuzzing function to convert
4128     corpora into CURL options.
4129   - Have supporting functions to generate corpora from existing tests
4130   - Integrate with Makefile.am
4131
4132 - strcase: corrected comment header for Curl_strcasecompare()
4133
4134 - unit1301: fix error message on first test
4135
4136 - curl_global_sslset.3: show the struct and enum too
4137   
4138   ... so that users can actually write code based on the man page alone,
4139   not having to read the header file.
4140
4141 Jay Satiro (31 Aug 2017)
4142 - darwinssl: handle long strings in TLS certs (follow-up)
4143   
4144   - Fix handling certificate subjects that are already UTF-8 encoded.
4145   
4146   Follow-up to b3b75d1 from two days ago. Since then a copy would be
4147   skipped if the subject was already UTF-8, possibly resulting in a NULL
4148   deref later on.
4149   
4150   Ref: https://github.com/curl/curl/issues/1823
4151   Ref: https://github.com/curl/curl/pull/1831
4152   
4153   Closes https://github.com/curl/curl/pull/1836
4154
4155 Daniel Stenberg (31 Aug 2017)
4156 - cyassl: call it the "WolfSSL" backend
4157   
4158   ... instead of cyassl, as this is the current name for it.
4159   
4160   Closes #1844
4161
4162 - polarssl: fix multissl breakage
4163   
4164   Reported-by: Dan Fandrich
4165   Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html
4166   Closes #1843
4167
4168 - configure: remove the leading comma from the backends list
4169   
4170   ... when darwinssl is used.
4171   
4172   Reported-by: Viktor Szakats
4173   Bug: https://github.com/curl/curl/commit/b0989cd3abaff4f9a0717b4875022fa79e33b481#commitcomment-23943493
4174   
4175   Closes #1845
4176
4177 Kamil Dudka (30 Aug 2017)
4178 - examples/sslbackend.c: fix failure of 'make checksrc'
4179   
4180   ./sslbackend.c:58:3: warning: else after closing brace on same line (BRACEELSE)
4181      } else if(isdigit(*name)) {
4182      ^
4183   ./sslbackend.c:62:3: warning: else after closing brace on same line (BRACEELSE)
4184      } else
4185      ^
4186
4187 Viktor Szakats (30 Aug 2017)
4188 - makefile.m32: add multissl support
4189   
4190   Closes https://github.com/curl/curl/pull/1840
4191
4192 Daniel Stenberg (30 Aug 2017)
4193 - curl.h: CURLSSLBACKEND_WOLFSSL used wrong value
4194   
4195   The CURLSSLBACKEND_WOLFSSL is supposed to be an alias for
4196   CURLSSLBACKEND_CYASSL, but used an erronous value. To reduce the risk
4197   for a similar mistake, define the backend aliases to use the enum values
4198   instead.
4199   
4200   Reported-by: Gisle Vanem
4201   Bug: https://curl.haxx.se/mail/lib-2017-08/0120.html
4202
4203 - curl_global_sslset.3: clarify
4204   
4205   it is a one time *set*, not necessarily a one time use... it can be
4206   called again if the first call failed or just listed the alternatives.
4207   
4208   clarify that the available backends are the ones this build supports
4209   
4210   plus add some formatting
4211   
4212   Reported-by: Rich Gray
4213   Bug: https://curl.haxx.se/mail/lib-2017-08/0119.html
4214
4215 - curl/multi.h: remove duplicated closing c++ brace
4216   
4217   Regression since 1328f69d53f2f2e93
4218   
4219   Fixes #1841
4220   Reported-by: Andrei Karas
4221
4222 - RELEASE-NOTES: synced with 8c33c963a
4223
4224 - HELP-US.md: spelling
4225
4226 - HELP-US.md: "How to get started helping out in the curl project"
4227   
4228   Closes #1837
4229
4230 Dan Fandrich (29 Aug 2017)
4231 - asyn-thread: Fixed cleanup after OOM
4232   
4233   destroy_async_data() assumes that if the flag "done" is not set yet, the
4234   thread itself will clean up once the request is complete.  But if an
4235   error (generally OOM) occurs before the thread even has a chance to
4236   start, it will never get a chance to clean up and memory will be leaked.
4237   By clearing "done" only just before starting the thread, the correct
4238   cleanup sequence will happen in all cases.
4239
4240 Daniel Stenberg (28 Aug 2017)
4241 - curl_global_init.3: mention curl_global_sslset(3)
4242
4243 Dan Fandrich (28 Aug 2017)
4244 - unit1606: Fixed shadowed variable warning
4245
4246 - asyn-thread: Improved cleanup after OOM situations
4247
4248 - asyn-thread: Set errno to the proper value ENOMEM in OOM situation
4249   
4250   This used to be set in some configurations to EAI_MEMORY which is not a
4251   valid value for errno and caused Curl_strerror to fail an assertion.
4252
4253 Daniel Stenberg (28 Aug 2017)
4254 - [Johannes Schindelin brought this change]
4255
4256   configure: Handle "MultiSSL" specially When versioning symbols
4257   
4258   There is a mode in which libcurl is compiled with versioned symbols,
4259   depending on the active SSL backend.
4260   
4261   When multiple SSL backends are active, it does not make sense to favor
4262   one over the others, so let's not: introduce a new prefix for the case
4263   where multiple SSL backends are compiled into cURL.
4264   
4265   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4266
4267 - [Johannes Schindelin brought this change]
4268
4269   configure: allow setting the default SSL backend
4270   
4271   Previously, we used as default SSL backend whatever was first in the
4272   `available_backends` array.
4273   
4274   However, some users may want to override that default without patching
4275   the source code.
4276   
4277   Now they can: with the --with-default-ssl-backend=<backend> option of
4278   the ./configure script.
4279   
4280   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4281
4282 - [Johannes Schindelin brought this change]
4283
4284   vtls: use Curl_ssl_multi pseudo backend only when needed
4285   
4286   When only one SSL backend is configured, it is totally unnecessary to
4287   let multissl_init() configure the backend at runtime, we can select the
4288   correct backend at build time already.
4289   
4290   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4291
4292 - [Johannes Schindelin brought this change]
4293
4294   version: if built with more than one SSL backend, report all of them
4295   
4296   To discern the active one from the inactive ones, put the latter into
4297   parentheses.
4298   
4299   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4300
4301 - [Johannes Schindelin brought this change]
4302
4303   version: add the CURL_VERSION_MULTI_SSL feature flag
4304   
4305   This new feature flag reports When cURL was built with multiple SSL
4306   backends.
4307   
4308   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4309
4310 - [Johannes Schindelin brought this change]
4311
4312   metalink: allow compiling with multiple SSL backends
4313   
4314   Previously, the code assumed that at most one of the SSL backends would
4315   be compiled in, emulating OpenSSL's functions if the configured backend
4316   was not OpenSSL itself.
4317   
4318   However, now we allow building with multiple SSL backends and choosing
4319   one at runtime. Therefore, metalink needs to be adjusted to handle this
4320   scenario, too.
4321   
4322   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4323
4324 - [Johannes Schindelin brought this change]
4325
4326   docs/examples: demonstrate how to select SSL backends
4327   
4328   The newly-introduced curl_global_sslset() function deserves to be
4329   show-cased.
4330   
4331   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4332
4333 - [Johannes Schindelin brought this change]
4334
4335   Add a man page for curl_global_sslset()
4336   
4337   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4338
4339 - [Johannes Schindelin brought this change]
4340
4341   vtls: introduce curl_global_sslset()
4342   
4343   Let's add a compile time safe API to select an SSL backend. This
4344   function needs to be called *before* curl_global_init(), and can be
4345   called only once.
4346   
4347   Side note: we do not explicitly test that it is called before
4348   curl_global_init(), but we do verify that it is not called multiple times
4349   (even implicitly).
4350   
4351   If SSL is used before the function was called, it will use whatever the
4352   CURL_SSL_BACKEND environment variable says (or default to the first
4353   available SSL backend), and if a subsequent call to
4354   curl_global_sslset() disagrees with the previous choice, it will fail
4355   with CURLSSLSET_TOO_LATE.
4356   
4357   The function also accepts an "avail" parameter to point to a (read-only)
4358   NULL-terminated list of available backends. This comes in real handy if
4359   an application wants to let the user choose between whatever SSL backends
4360   the currently available libcurl has to offer: simply call
4361   
4362           curl_global_sslset(-1, NULL, &avail);
4363   
4364   which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
4365   variable to point to the relevant information to present to the user.
4366   
4367   Just like with the HTTP/2 push functions, we have to add the function
4368   declaration of curl_global_sslset() function to the header file
4369   *multi.h* because VMS and OS/400 require a stable order of functions
4370   declared in include/curl/*.h (where the header files are sorted
4371   alphabetically). This looks a bit funny, but it cannot be helped.
4372   
4373   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4374
4375 - [Johannes Schindelin brought this change]
4376
4377   vtls: refactor out essential information about the SSL backends
4378   
4379   There is information about the compiled-in SSL backends that is really
4380   no concern of any code other than the SSL backend itself, such as which
4381   function (if any) implements SHA-256 summing.
4382   
4383   And there is information that is really interesting to the user, such as
4384   the name, or the curl_sslbackend value.
4385   
4386   Let's factor out the latter into a publicly visible struct. This
4387   information will be used in the upcoming API to set the SSL backend
4388   globally.
4389   
4390   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4391
4392 - [Johannes Schindelin brought this change]
4393
4394   vtls: allow selecting which SSL backend to use at runtime
4395   
4396   When building software for the masses, it is sometimes not possible to
4397   decide for all users which SSL backend is appropriate.
4398   
4399   Git for Windows, for example,  uses cURL to perform clones, fetches and
4400   pushes via HTTPS, and some users strongly prefer OpenSSL, while other
4401   users really need to use Secure Channel because it offers
4402   enterprise-ready tools to manage credentials via Windows' Credential
4403   Store.
4404   
4405   The current Git for Windows versions use the ugly work-around of
4406   building libcurl once with OpenSSL support and once with Secure Channel
4407   support, and switching out the binaries in the installer depending on
4408   the user's choice.
4409   
4410   Needless to say, this is a super ugly workaround that actually only
4411   works in some cases: Git for Windows also comes in a portable form, and
4412   in a form intended for third-party applications requiring Git
4413   functionality, in which cases this "swap out libcurl-4.dll" simply is
4414   not an option.
4415   
4416   Therefore, the Git for Windows project has a vested interest in teaching
4417   cURL to make the SSL backend a *runtime* option.
4418   
4419   This patch makes that possible.
4420   
4421   By running ./configure with multiple --with-<backend> options, cURL will
4422   be built with multiple backends.
4423   
4424   For the moment, the backend can be configured using the environment
4425   variable CURL_SSL_BACKEND (valid values are e.g. "openssl" and
4426   "schannel").
4427   
4428   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4429
4430 - [Johannes Schindelin brought this change]
4431
4432   vtls: fold the backend ID into the Curl_ssl structure
4433   
4434   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4435
4436 - [Johannes Schindelin brought this change]
4437
4438   curl_ntlm_core: don't complain but #include OpenSSL header if needed
4439   
4440   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4441
4442 - [Johannes Schindelin brought this change]
4443
4444   vtls: encapsulate SSL backend-specific data
4445   
4446   So far, all of the SSL backends' private data has been declared as
4447   part of the ssl_connect_data struct, in one big #if .. #elif .. #endif
4448   block.
4449   
4450   This can only work as long as the SSL backend is a compile-time option,
4451   something we want to change in the next commits.
4452   
4453   Therefore, let's encapsulate the exact data needed by each SSL backend
4454   into a private struct, and let's avoid bleeding any SSL backend-specific
4455   information into urldata.h. This is also necessary to allow multiple SSL
4456   backends to be compiled in at the same time, as e.g. OpenSSL's and
4457   CyaSSL's headers cannot be included in the same .c file.
4458   
4459   To avoid too many malloc() calls, we simply append the private structs
4460   to the connectdata struct in allocate_conn().
4461   
4462   This requires us to take extra care of alignment issues: struct fields
4463   often need to be aligned on certain boundaries e.g. 32-bit values need to
4464   be stored at addresses that divide evenly by 4 (= 32 bit / 8
4465   bit-per-byte).
4466   
4467   We do that by assuming that no SSL backend's private data contains any
4468   fields that need to be aligned on boundaries larger than `long long`
4469   (typically 64-bit) would need. Under this assumption, we simply add a
4470   dummy field of type `long long` to the `struct connectdata` struct. This
4471   field will never be accessed but acts as a placeholder for the four
4472   instances of ssl_backend_data instead. the size of each ssl_backend_data
4473   struct is stored in the SSL backend-specific metadata, to allow
4474   allocate_conn() to know how much extra space to allocate, and how to
4475   initialize the ssl[sockindex]->backend and proxy_ssl[sockindex]->backend
4476   pointers.
4477   
4478   This would appear to be a little complicated at first, but is really
4479   necessary to encapsulate the private data of each SSL backend correctly.
4480   And we need to encapsulate thusly if we ever want to allow selecting
4481   CyaSSL and OpenSSL at runtime, as their headers cannot be included within
4482   the same .c file (there are just too many conflicting definitions and
4483   declarations for that).
4484   
4485   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4486
4487 - [Johannes Schindelin brought this change]
4488
4489   vtls: prepare the SSL backends for encapsulated private data
4490   
4491   At the moment, cURL's SSL backend needs to be configured at build time.
4492   As such, it is totally okay for them to hard-code their backend-specific
4493   data in the ssl_connect_data struct.
4494   
4495   In preparation for making the SSL backend a runtime option, let's make
4496   the access of said private data a bit more abstract so that it can be
4497   adjusted later in an easy manner.
4498   
4499   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4500
4501 - [Johannes Schindelin brought this change]
4502
4503   urldata.h: move SSPI-specific #include to correct location
4504   
4505   In 86b889485 (sasl_gssapi: Added GSS-API based Kerberos V5 variables,
4506   2014-12-03), an SSPI-specific field was added to the kerberos5data
4507   struct without moving the #include "curl_sspi.h" later in the same file.
4508   
4509   This broke the build when SSPI was enabled, unless Secure Channel was
4510   used as SSL backend, because it just so happens that Secure Channel also
4511   requires "curl_sspi.h" to be #included.
4512   
4513   In f4739f639 (urldata: include curl_sspi.h when Windows SSPI is enabled,
4514   2017-02-21), this bug was fixed incorrectly: Instead of moving the
4515   appropriate conditional #include, the Secure Channel-conditional part
4516   was now also SSPI-conditional.
4517   
4518   Fix this problem by moving the correct #include instead.
4519   
4520   This is also required for an upcoming patch that moves all the Secure
4521   Channel-specific stuff out of urldata.h and encapsulates it properly in
4522   vtls/schannel.c instead.
4523   
4524   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4525
4526 - [Johannes Schindelin brought this change]
4527
4528   urldata.h: remove support for obsolete PolarSSL version
4529   
4530   Since 5017d5ada (polarssl: now require 1.3.0+, 2014-03-17), we require
4531   a newer PolarSSL version. No need to keep code trying to support any
4532   older version.
4533   
4534   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4535
4536 - [Johannes Schindelin brought this change]
4537
4538   getinfo: access SSL internals via Curl_ssl
4539   
4540   In the ongoing endeavor to abstract out all SSL backend-specific
4541   functionality, this is the next step: Instead of hard-coding how the
4542   different SSL backends access their internal data in getinfo.c, let's
4543   implement backend-specific functions to do that task.
4544   
4545   This will also allow for switching SSL backends as a runtime option.
4546   
4547   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4548
4549 - [Johannes Schindelin brought this change]
4550
4551   vtls: move SSL backends' private constants out of their header files
4552   
4553   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4554
4555 - [Johannes Schindelin brought this change]
4556
4557   axtls: use Curl_none_* versions of init() and cleanup()
4558   
4559   There are convenient no-op versions of the init/cleanup functions now,
4560   no need to define private ones for axTLS.
4561   
4562   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4563
4564 - [Johannes Schindelin brought this change]
4565
4566   vtls: remove obsolete declarations of SSL backend functionality
4567   
4568   These functions are all available via the Curl_ssl struct now, no need
4569   to declare them separately anymore.
4570   
4571   As the global declarations are removed, the corresponding function
4572   definitions are marked as file-local. The only two exceptions here are
4573   Curl_mbedtls_shutdown() and Curl_polarssl_shutdown(): only the
4574   declarations were removed, there are no function definitions to mark
4575   file-local.
4576   
4577   Please note that Curl_nss_force_init() is *still* declared globally, as
4578   the only SSL backend-specific function, because it was introduced
4579   specifically for the use case where cURL was compiled with
4580   `--without-ssl --with-nss`. For details, see f3b77e561 (http_ntlm: add
4581   support for NSS, 2010-06-27).
4582   
4583   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4584
4585 - [Johannes Schindelin brought this change]
4586
4587   schannel: reorder functions topologically
4588   
4589   The _shutdown() function calls the _session_free() function; While this
4590   is not a problem now (because schannel.h declares both functions), a
4591   patch looming in the immediate future with make all of these functions
4592   file-local.
4593   
4594   So let's just move the _session_free() function's definition before it
4595   is called.
4596   
4597   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4598
4599 - [Johannes Schindelin brought this change]
4600
4601   axtls: reorder functions topologically
4602   
4603   The connect_finish() function (like many other functions after it) calls
4604   the Curl_axtls_close() function; While this is not a problem now
4605   (because axtls.h declares the latter function), a patch looming in the
4606   immediate future with make all of these functions file-local.
4607   
4608   So let's just move the Curl_axtls_close() function's definition before
4609   it is called.
4610   
4611   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4612
4613 - [Johannes Schindelin brought this change]
4614
4615   vtls: move the SUPPORT_HTTPS_PROXY flag into the Curl_ssl struct
4616   
4617   That will allow us to choose the SSL backend at runtime.
4618   
4619   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4620
4621 - [Johannes Schindelin brought this change]
4622
4623   vtls: convert the have_curlssl_* constants to runtime flags
4624   
4625   The entire idea of introducing the Curl_ssl struct to describe SSL
4626   backends is to prepare for choosing the SSL backend at runtime.
4627   
4628   To that end, convert all the #ifdef have_curlssl_* style conditionals
4629   to use bit flags instead.
4630   
4631   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4632
4633 - [Johannes Schindelin brought this change]
4634
4635   vtls: move sha256sum into the Curl_ssl struct
4636   
4637   The SHA-256 checksumming is also an SSL backend-specific function.
4638   Let's include it in the struct declaring the functionality of SSL
4639   backends.
4640   
4641   In contrast to MD5, there is no fall-back code. To indicate this, the
4642   respective entries are NULL for those backends that offer no support for
4643   SHA-256 checksumming.
4644   
4645   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4646
4647 - [Johannes Schindelin brought this change]
4648
4649   vtls: move md5sum into the Curl_ssl struct
4650   
4651   The MD5 summing is also an SSL backend-specific function. So let's
4652   include it, offering the previous fall-back code as a separate function
4653   now: Curl_none_md5sum(). To allow for that, the signature had to be
4654   changed so that an error could be returned from the implementation
4655   (Curl_none_md5sum() can run out of memory).
4656   
4657   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4658
4659 - [Johannes Schindelin brought this change]
4660
4661   vtls: use the Curl_ssl struct to access all SSL backends' functionality
4662   
4663   This is the first step to unify the SSL backend handling. Now all the
4664   SSL backend-specific functionality is accessed via a global instance of
4665   the Curl_ssl struct.
4666   
4667   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4668
4669 - [Johannes Schindelin brought this change]
4670
4671   vtls: declare Curl_ssl structs for every SSL backend
4672   
4673   The idea of introducing the Curl_ssl struct was to unify how the SSL
4674   backends are declared and called. To this end, we now provide an
4675   instance of the Curl_ssl struct for each and every SSL backend.
4676   
4677   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4678
4679 - [Johannes Schindelin brought this change]
4680
4681   vtls: introduce a new struct for SSL backends
4682   
4683   This new struct is similar in nature to Curl_handler: it will define the
4684   functions and capabilities of all the SSL backends (where Curl_handler
4685   defines the functions and capabilities of protocol handlers).
4686   
4687   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4688
4689 - [Johannes Schindelin brought this change]
4690
4691   vtls: make sure every _sha256sum()'s first arg is const
4692   
4693   This patch makes the signature of the _sha256sum() functions consistent
4694   among the SSL backends, in preparation for unifying the way all SSL
4695   backends are accessed.
4696   
4697   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4698
4699 - [Johannes Schindelin brought this change]
4700
4701   vtls: make sure all _data_pending() functions return bool
4702   
4703   This patch makes the signature of the _data_pending() functions
4704   consistent among the SSL backends, in preparation for unifying the way
4705   all SSL backends are accessed.
4706   
4707   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4708
4709 - [Johannes Schindelin brought this change]
4710
4711   vtls: make sure all _cleanup() functions return void
4712   
4713   This patch makes the signature of the _cleanup() functions consistent
4714   among the SSL backends, in preparation for unifying the way all SSL
4715   backends are accessed.
4716   
4717   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4718
4719 - [Johannes Schindelin brought this change]
4720
4721   vtls: use consistent signature for _random() implementations
4722   
4723   This will make the upcoming multissl backend much easier to implement.
4724   
4725   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4726
4727 - strtooff: fix build for systems with long long but no strtoll option
4728   
4729   Closes #1829
4730   
4731   Reported-by: Dan Fandrich
4732   Bug: https://github.com/curl/curl/pull/1758#issuecomment-324861615
4733
4734 - darwinssl: handle long strings in TLS certs
4735   
4736   ... as the previous fixed length 128 bytes buffer was sometimes too
4737   small.
4738   
4739   Fixes #1823
4740   Closes #1831
4741   
4742   Reported-by: Benjamin Sergeant
4743   Assisted-by: Bill Pyne, Ray Satiro, Nick Zitzmann
4744
4745 - system.h: include sys/poll.h for AIX
4746   
4747   ... to get the event/revent defines that might be used for the poll
4748   struct.
4749   
4750   Reported-by: Michael Smith
4751   Fixes #1828
4752   Closes #1833
4753
4754 Dan Fandrich (26 Aug 2017)
4755 - tests: Make sure libtests & unittests call curl_global_cleanup()
4756   
4757   These were missed in commit c468c27b.
4758
4759 Jay Satiro (26 Aug 2017)
4760 - [theantigod brought this change]
4761
4762   winbuild: fix embedded manifest option
4763   
4764   Embedded manifest option didn't work due to incorrect path.
4765   
4766   Fixes https://github.com/curl/curl/issues/1832
4767
4768 Daniel Stenberg (25 Aug 2017)
4769 - fuzz/Makefile.am: remove curlbuild.h leftovers
4770
4771 - examples/threaded-ssl: mention that this is for openssl before 1.1
4772
4773 - imap: use defined names for response codes
4774   
4775   When working on this code I found the previous setup a bit weird while
4776   using proper defines increases readability.
4777   
4778   Closes #1824
4779
4780 - CURLOPT_USERPWD.3: see also CURLOPT_PROXYUSERPWD
4781
4782 - imap: support PREAUTH
4783   
4784   It is a defined possible greeting at server startup that means the
4785   connection is already authenticated. See
4786   https://tools.ietf.org/html/rfc3501#section-7.1.4
4787   
4788   Test 846 added to verify.
4789   
4790   Fixes #1818
4791   Closes #1820
4792
4793 Jay Satiro (23 Aug 2017)
4794 - config-tpf: define SIZEOF_LONG
4795   
4796   Recent changes that replaced CURL_SIZEOF_LONG in the source with
4797   SIZEOF_LONG broke builds that use the premade configuration files and
4798   don't have SIZEOF_LONG defined.
4799   
4800   Bug: https://github.com/curl/curl/issues/1816
4801
4802 Dan Fandrich (23 Aug 2017)
4803 - test1453: Fixed <features>
4804
4805 Daniel Stenberg (22 Aug 2017)
4806 - [Gisle Vanem brought this change]
4807
4808   config-dos: add missing defines, SIZEOF_* and two others
4809   
4810   Bug: #1816
4811
4812 - curl: shorten and clean up CA cert verification error message
4813   
4814   The previous message was just too long for ordinary people and it was
4815   encouraging users to use `--insecure` a little too easy.
4816   
4817   Based-on-work-by: Frank Denis
4818   
4819   Closes #1810
4820   Closes #1817
4821
4822 - request-target.d: mention added in 7.55.0
4823
4824 Marcel Raad (22 Aug 2017)
4825 - tool_main: turn off MinGW CRT's globbing
4826   
4827   By default, the MinGW CRT globs command-line arguments. This prevents
4828   getting a single asterisk into an argument as test 1299 does. Turn off
4829   globbing by setting the global variable _CRT_glob to 0 for MinGW.
4830   
4831   Fixes https://github.com/curl/curl/issues/1751
4832   Closes https://github.com/curl/curl/pull/1813
4833
4834 Viktor Szakats (22 Aug 2017)
4835 - makefile.m32: add support for libidn2
4836   
4837   libidn was replaced with libidn2 last year in configure.
4838   Caveat: libidn2 may depend on a list of further libs.
4839   These can be manually specified via CURL_LDFLAG_EXTRAS.
4840   
4841   Closes https://github.com/curl/curl/pull/1815
4842
4843 Jay Satiro (22 Aug 2017)
4844 - [Viktor Szakats brought this change]
4845
4846   config-win32: define SIZEOF_LONG
4847   
4848   Recent changes that replaced CURL_SIZEOF_LONG in the source with
4849   SIZEOF_LONG broke builds that use the premade configuration files and
4850   don't have SIZEOF_LONG defined.
4851   
4852   Closes https://github.com/curl/curl/pull/1814
4853
4854 Daniel Stenberg (20 Aug 2017)
4855 - cmake: enable picky compiler options with clang and gcc
4856   
4857   closes #1799
4858
4859 - curl/system.h: fix build for hppa
4860   
4861   Reported-by: John David Anglin
4862   Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872502#10
4863
4864 - [Even Rouault brought this change]
4865
4866   tftp: fix memory leak on too long filename
4867   
4868   Fixes
4869   
4870   $ valgrind --leak-check=full ~/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4871   
4872   ==9752== Memcheck, a memory error detector
4873   ==9752== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
4874   ==9752== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
4875   ==9752== Command: /home/even/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4876   ==9752==
4877   curl: (71) TFTP file name too long
4878   
4879   ==9752==
4880   ==9752== HEAP SUMMARY:
4881   ==9752== 505 bytes in 1 blocks are definitely lost in loss record 11 of 11
4882   ==9752==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
4883   ==9752==    by 0x4E61CED: Curl_urldecode (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4884   ==9752==    by 0x4E75868: tftp_state_machine (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4885   ==9752==    by 0x4E761B6: tftp_do (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4886   ==9752==    by 0x4E711B6: multi_runsingle (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4887   ==9752==    by 0x4E71D00: curl_multi_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4888   ==9752==    by 0x4E6950D: curl_easy_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4889   ==9752==    by 0x40E0B7: operate_do (in /home/even/install-curl-git/bin/curl)
4890   ==9752==    by 0x40E849: operate (in /home/even/install-curl-git/bin/curl)
4891   ==9752==    by 0x402693: main (in /home/even/install-curl-git/bin/curl)
4892   
4893   Fixes https://oss-fuzz.com/v2/testcase-detail/5232311106797568
4894   Credit to OSS Fuzz
4895   
4896   Closes #1808
4897
4898 Dan Fandrich (19 Aug 2017)
4899 - runtests: fixed case insensitive matching of keywords
4900   
4901   Commit 5c2aac71 didn't work in the case of mixed-case keywords given on
4902   the command-line.
4903
4904 - tests: Make sure libtests call curl_global_cleanup()
4905   
4906   This ensures that global data allocations are freed so Valgrind stays
4907   happy. This was a problem with at least PolarSSL and mbedTLS.
4908
4909 Daniel Stenberg (18 Aug 2017)
4910 - RELEASE-NOTES: synced with 8baead425
4911
4912 - scripts/contri*sh: use "git log --use-mailmap"
4913
4914 - mailmap: de-duplify some git authors
4915
4916 - http2_recv: return error better on fatal h2 errors
4917   
4918   Ref #1012
4919   Figured-out-by: Tatsuhiro Tsujikawa
4920
4921 - KNOWN_BUGS: HTTP test server 'connection-monitor' problems
4922   
4923   Closes #868
4924
4925 - curl/system.h: check for __ppc__ as well
4926   
4927   ... regression since issue #1774 (commit 10b3df10596a) since obviously
4928   some older gcc doesn't know __powerpc__ while some newer doesn't know
4929   __ppc__ ...
4930   
4931   Fixes #1797
4932   Closes #1798
4933   Reported-by: Ryan Schmidt
4934
4935 - [Jan Alexander Steffens (heftig) brought this change]
4936
4937   http: Don't wait on CONNECT when there is no proxy
4938   
4939   Since curl 7.55.0, NetworkManager almost always failed its connectivity
4940   check by timeout. I bisected this to 5113ad04 (http-proxy: do the HTTP
4941   CONNECT process entirely non-blocking).
4942   
4943   This patch replaces !Curl_connect_complete with Curl_connect_ongoing,
4944   which returns false if the CONNECT state was left uninitialized and lets
4945   the connection continue.
4946   
4947   Closes #1803
4948   Fixes #1804
4949   
4950   Also-fixed-by: Gergely Nagy
4951
4952 - [Johannes Schindelin brought this change]
4953
4954   metalink: adjust source code style
4955   
4956   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4957
4958 - CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG
4959
4960 - lib557: no longer use CURL_SIZEOF_* defines
4961
4962 - config-win32: define SIZEOF_CURL_OFF_T
4963
4964 - cmake: sizeof curl_off_t, remove unused detections
4965
4966 - system.h: remove all CURL_SIZEOF_* defines
4967   
4968   ... as they're not used externally and internally we check for the sizes
4969   already in configure etc.
4970   
4971   Closes #1767
4972
4973 - ftp: fix CWD when doing multicwd then nocwd on same connection
4974   
4975   Fixes #1782
4976   Closes #1787
4977   Reported-by: Peter Lamare
4978
4979 - CURLOPT_SSH_COMPRESSION.3: enable with 1L
4980   
4981   (leaves other values reserved for the future)
4982
4983 - compressed-ssh.d: "Added: 7.56.0"
4984
4985 - curl/system.h: checksrc compliance
4986
4987 Jay Satiro (17 Aug 2017)
4988 - [Viktor Szakats brought this change]
4989
4990   ssh: add the ability to enable compression (for SCP/SFTP)
4991   
4992   The required low-level logic was already available as part of
4993   `libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1]
4994   option.)
4995   
4996   This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION`
4997   (boolean) and the new `curl` command-line option `--compressed-ssh`
4998   to request this `libssh2` feature. To have compression enabled, it
4999   is required that the SSH server supports a (zlib) compatible
5000   compression method and that `libssh2` was built with `zlib` support
5001   enabled.
5002   
5003   [1] https://www.libssh2.org/libssh2_session_flag.html
5004   
5005   Ref: https://github.com/curl/curl/issues/1732
5006   Closes https://github.com/curl/curl/pull/1735
5007
5008 - examples/ftpuploadresume: checksrc compliance
5009
5010 - [Maksim Stsepanenka brought this change]
5011
5012   http_proxy: fix build error for CURL_DOES_CONVERSIONS
5013   
5014   Closes https://github.com/curl/curl/pull/1793
5015
5016 GitHub (16 Aug 2017)
5017 - [Nick Zitzmann brought this change]
5018
5019   configure: check for __builtin_available() availability (#1788)
5020   
5021   This change does two things:
5022   1. It un-breaks the build in Xcode 9.0. (Xcode 9.0 is currently
5023      failing trying to compile connectx() in lib/connect.c.)
5024   2. It finally weak-links the connectx() function, and falls back on
5025      connect() when run on older operating systems.
5026
5027 Daniel Stenberg (16 Aug 2017)
5028 - travis: add metalink to some osx builds
5029   
5030   Closes #1790
5031
5032 - [Max Dymond brought this change]
5033
5034   coverage: Use two coveralls commands to get lib/vtls results
5035   
5036   closes #1747
5037
5038 - darwinssi: fix error: variable length array used
5039
5040 - m4/curl-compilers.m4: use proper quotes around string, not backticks
5041   
5042   ... when setting clang version to assume 3.7
5043   
5044   Caused a lot of "integer expression expected" warnings by configure.
5045
5046 - [Benbuck Nason brought this change]
5047
5048   cmake: remove dead code for DISABLED_THREADSAFE
5049   
5050   Closes #1786
5051
5052 Jay Satiro (15 Aug 2017)
5053 - [Jakub Zakrzewski brought this change]
5054
5055   curl-confopts.m4: fix --disable-threaded-resolver
5056   
5057   Closes https://github.com/curl/curl/issues/1784
5058
5059 Daniel Stenberg (15 Aug 2017)
5060 - [Ryan Winograd brought this change]
5061
5062   progress: Track total times following redirects
5063   
5064   Update the progress timers `t_nslookup`, `t_connect`, `t_appconnect`,
5065   `t_pretransfer`, and `t_starttransfer` to track the total times for
5066   these activities when a redirect is followed. Previously, only the times
5067   for the most recent request would be tracked.
5068   
5069   Related changes:
5070   
5071     - Rename `Curl_pgrsResetTimesSizes` to `Curl_pgrsResetTransferSizes`
5072       now that the function only resets transfer sizes and no longer
5073       modifies any of the progress timers.
5074   
5075     - Add a bool to the `Progress` struct that is used to prevent
5076       double-counting `t_starttransfer` times.
5077   
5078   Added test case 1399.
5079   
5080   Fixes #522 and Known Bug 1.8
5081   Closes #1602
5082   Reported-by: joshhe on github
5083
5084 - [Benbuck Nason brought this change]
5085
5086   cmake: remove dead code for CURL_DISABLE_RTMP
5087   
5088   Closes #1785
5089
5090 Kamil Dudka (15 Aug 2017)
5091 - zsh.pl: produce a working completion script again
5092   
5093   Commit curl-7_54_0-118-g8b2f22e changed the output format of curl --help
5094   to use <file> and <dir> instead of FILE and DIR, which caused zsh.pl to
5095   produce a broken completion script:
5096   
5097   % curl --<TAB>
5098   _curl:10: no such file or directory: seconds
5099   
5100   Closes #1779
5101
5102 Daniel Stenberg (15 Aug 2017)
5103 - curlver: toward 7.56.0?
5104
5105 - RELEASE-NOTES: synced with 91c46dc44
5106
5107 - test1449: FTP download range with an too large size
5108
5109 - strtoofft: reduce integer overflow risks globally
5110   
5111   ... make sure we bail out on overflows.
5112   
5113   Reported-by: Brian Carpenter
5114   Closes #1758
5115
5116 - travis: build the examples too
5117   
5118   to make sure they keep building warning-free
5119   
5120   Closes #1777
5121
5122 - runtests: match keywords case insensitively
5123
5124 - examples/ftpuploadresume.c: use portable code
5125   
5126   ... converted from the MS specific _snscanf()
5127
5128 Version 7.55.1 (13 Aug 2017)
5129
5130 Daniel Stenberg (13 Aug 2017)
5131 - RELEASE-NOTES/THANKS: curl 7.55.1 release time
5132
5133 - gitignore: ignore .xz now instead of .lzma
5134
5135 - [Sergei Nikulov brought this change]
5136
5137   cmake: Threads detection update. ref: #1702
5138   
5139   Closes #1719
5140
5141 - ipv6_scope: support unique local addresses
5142   
5143   Fixes #1764
5144   Closes #1773
5145   Reported-by: James Slaughter
5146
5147 - [Alex Potapenko brought this change]
5148
5149   curl/system.h: GCC doesn't define __ppc__ on PowerPC, uses __powerpc__
5150   
5151   Closes #1774
5152
5153 - test1448: verify redirect to IDN using URL
5154   
5155   Closes #1772
5156
5157 - [Salah-Eddin Shaban brought this change]
5158
5159   redirect: skip URL encoding for host names
5160   
5161   This fixes redirects to IDN URLs
5162   
5163   Fixes #1441
5164   Closes #1762
5165   Reported by: David Lord
5166
5167 - test2032: mark as flaky (again)
5168
5169 - travis: test cmake build on tarball too
5170   
5171   Could've prevented #1755
5172
5173 - [Simon Warta brought this change]
5174
5175   cmake: allow user to override CMAKE_DEBUG_POSTFIX
5176   
5177   Closes #1763
5178
5179 - connect-to.d: better language
5180
5181 - connect-to.d: clarified
5182
5183 - bagder/Curl_tvdiff_us: fix the math
5184   
5185   Regression since adef394ac5 (released in 7.55.0)
5186   
5187   Reported-by: Han Qiao
5188   Fixes #1769
5189   Closes #1771
5190
5191 - curl/system.h: add Oracle Solaris Studio
5192   
5193   Fixes #1752
5194
5195 - [Alessandro Ghedini brought this change]
5196
5197   docs: fix typo funtion -> function
5198   
5199   Closes #1770
5200
5201 Alessandro Ghedini (12 Aug 2017)
5202 - docs: fix grammar in CURL_SSLVERSION_MAX_DEFAULT description
5203
5204 - docs: fix typo stuct -> struct
5205
5206 Dan Fandrich (12 Aug 2017)
5207 - test1447: require a curl with http support
5208
5209 Daniel Stenberg (11 Aug 2017)
5210 - [Thomas Petazzoni brought this change]
5211
5212   curl/system.h: support more architectures
5213   
5214   The long list of architectures in include/curl/system.h is annoying to
5215   maintain, and needs to be extended for each and every architecture to
5216   support.
5217   
5218   Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler
5219   (we are in the GNUC condition anyway), which tells us if long is 4
5220   bytes or 8 bytes.
5221   
5222   This fixes the build of libcurl 7.55.0 on architectures such as
5223   OpenRISC or ARC.
5224   
5225   Closes #1766
5226   
5227   Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5228
5229 - test2033: this went flaky again
5230   
5231   Suspicion: when we enabled the threaded resolver by default.
5232
5233 - test1447: verifies the parse proxy fix in 6e0e152ce5c
5234
5235 - [Even Rouault brought this change]
5236
5237   parse_proxy(): fix memory leak in case of invalid proxy server name
5238   
5239   Fixes the below leak:
5240   
5241   $ valgrind --leak-check=full ~/install-curl-git/bin/curl --proxy "http://a:b@/x" http://127.0.0.1
5242   curl: (5) Couldn't resolve proxy name
5243   ==5048==
5244   ==5048== HEAP SUMMARY:
5245   ==5048==     in use at exit: 532 bytes in 12 blocks
5246   ==5048==   total heap usage: 5,288 allocs, 5,276 frees, 445,271 bytes allocated
5247   ==5048==
5248   ==5048== 2 bytes in 1 blocks are definitely lost in loss record 1 of 12
5249   ==5048==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5250   ==5048==    by 0x4E6CB79: parse_login_details (url.c:5614)
5251   ==5048==    by 0x4E6BA82: parse_proxy (url.c:5091)
5252   ==5048==    by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5253   ==5048==    by 0x4E6EA18: create_conn (url.c:6498)
5254   ==5048==    by 0x4E6F9B4: Curl_connect (url.c:6967)
5255   ==5048==    by 0x4E86D05: multi_runsingle (multi.c:1436)
5256   ==5048==    by 0x4E88432: curl_multi_perform (multi.c:2160)
5257   ==5048==    by 0x4E7C515: easy_transfer (easy.c:708)
5258   ==5048==    by 0x4E7C74A: easy_perform (easy.c:794)
5259   ==5048==    by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5260   ==5048==    by 0x414025: operate_do (tool_operate.c:1563)
5261   ==5048==
5262   ==5048== 2 bytes in 1 blocks are definitely lost in loss record 2 of 12
5263   ==5048==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5264   ==5048==    by 0x4E6CBB6: parse_login_details (url.c:5621)
5265   ==5048==    by 0x4E6BA82: parse_proxy (url.c:5091)
5266   ==5048==    by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5267   ==5048==    by 0x4E6EA18: create_conn (url.c:6498)
5268   ==5048==    by 0x4E6F9B4: Curl_connect (url.c:6967)
5269   ==5048==    by 0x4E86D05: multi_runsingle (multi.c:1436)
5270   ==5048==    by 0x4E88432: curl_multi_perform (multi.c:2160)
5271   ==5048==    by 0x4E7C515: easy_transfer (easy.c:708)
5272   ==5048==    by 0x4E7C74A: easy_perform (easy.c:794)
5273   ==5048==    by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5274   ==5048==    by 0x414025: operate_do (tool_operate.c:1563)
5275   
5276   Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2984
5277   Credit to OSS Fuzz for discovery
5278   
5279   Closes #1761
5280
5281 - RELEASE-NOTES: synced with 37f2195a9
5282
5283 - curlver: bump to 7.55.1
5284
5285 - openssl: fix "error: this statement may fall through"
5286   
5287   A gcc7 warning.
5288
5289 - [David Benjamin brought this change]
5290
5291   openssl: remove CONST_ASN1_BIT_STRING.
5292   
5293   Just making the pointer as const works for the pre-1.1.0 path too.
5294   
5295   Closes #1759
5296
5297 - maketgz: remove old *.dist files before making the tarball
5298   
5299   To avoid "old crap" unintentionally getting shipped.
5300   
5301   Bug: https://curl.haxx.se/mail/lib-2017-08/0050.html
5302   Reported-by: Christian Weisgerber
5303
5304 Jay Satiro (10 Aug 2017)
5305 - mkhelp.pl: allow executing this script directly
5306   
5307   - Enable execute permission (chmod +x)
5308   
5309   - Change interpreter to /usr/bin/env perl
5310   
5311   Ref: https://github.com/curl/curl/issues/1743
5312
5313 Daniel Stenberg (10 Aug 2017)
5314 - configure: use the threaded resolver backend by default if possible
5315   
5316   Closes #1647
5317
5318 - cmake: move cmake_uninstall.cmake to CMake/
5319   
5320   Closes #1756
5321
5322 - metalink: fix error: ‘*’ in boolean context, suggest ‘&&’ instead
5323
5324 - dist: fix the cmake build by shipping cmake_uninstall.cmake.in too
5325   
5326   Fixes #1755
5327
5328 - travis: verify "make install"
5329   
5330   Help-by: Jay Satiro
5331   Closes #1753
5332
5333 Marcel Raad (10 Aug 2017)
5334 - build: check out *.sln files with Windows line endings
5335   
5336   Visual Studio doesn't like LF line endings in solution files and always
5337   converts them to CRLF when doing changes to the solution. Notably, this
5338   affects the solutions in the release archive.
5339   
5340   Closes https://github.com/curl/curl/pull/1746
5341
5342 - gitignore: ignore top-level .vs folder
5343   
5344   This folder is generated when using the CMake build system from within
5345   Visual Studio.
5346   
5347   Closes https://github.com/curl/curl/pull/1746
5348
5349 Jay Satiro (10 Aug 2017)
5350 - digest_sspi: Don't reuse context if the user/passwd has changed
5351   
5352   Bug: https://github.com/curl/curl/issues/1685
5353   Reported-by: paulharris@users.noreply.github.com
5354   
5355   Assisted-by: Isaac Boukris
5356   
5357   Closes https://github.com/curl/curl/pull/1742
5358
5359 Daniel Stenberg (9 Aug 2017)
5360 - [Adam Sampson brought this change]
5361
5362   dist: Add dictserver.py/negtelnetserver.py to EXTRA_DIST
5363   
5364   These weren't included in the 7.55.0 release, but are required in order
5365   to run the full test suite.
5366   
5367   Closes #1744
5368
5369 - [Adam Sampson brought this change]
5370
5371   curl: do bounds check using a double comparison
5372   
5373   The fix for this in 8661a0aacc01492e0436275ff36a21734f2541bb wasn't
5374   complete: if the parsed number in num is larger than will fit in a long,
5375   the conversion is undefined behaviour (causing test1427 to fail for me
5376   on IA32 with GCC 7.1, although it passes on AMD64 and ARMv7).  Getting
5377   rid of the cast means the comparison will be done using doubles.
5378   
5379   It might make more sense for the max argument to also be a double...
5380   
5381   Fixes #1750
5382   Closes #1749
5383
5384 - make install: add 8 missing man pages to the installation
5385
5386 - build: fix 'make install' with configure, install docs/libcurl/* too
5387   
5388   Broken since d24838d4da9faa
5389   
5390   Reported-by: Bernard Spil
5391
5392 Version 7.55.0 (9 Aug 2017)
5393
5394 Daniel Stenberg (9 Aug 2017)
5395 - RELEASE-NOTES: curl 7.55.0
5396
5397 - THANKS: 20 new contributors in 7.55.0
5398
5399 - [Viktor Szakats brought this change]
5400
5401   docs/comments: Update to secure URL versions
5402   
5403   Closes #1741
5404
5405 - configure: fix recv/send/select detection on Android
5406   
5407   ... since they now provide several functions as
5408   __attribute__((overloadable)), the argument detection logic need
5409   updates.
5410   
5411   Patched-by: destman at github
5412   
5413   Fixes #1738
5414   Closes #1739
5415
5416 Marcel Raad (8 Aug 2017)
5417 - ax_code_coverage.m4: update to latest version
5418   
5419   This updates the script to aad5ad5fedb306b39f901a899b7bd305b66c418d
5420   from August 01, 2017. Notably, this removes the lconv version whitelist.
5421   
5422   Closes https://github.com/curl/curl/pull/1716
5423
5424 Daniel Stenberg (7 Aug 2017)
5425 - test1427: verify command line parser integer overflow detection
5426
5427 - curl: detect and bail out early on parameter integer overflows
5428   
5429   Make the number parser aware of the maximum limit curl accepts for a
5430   value and return an error immediately if larger, instead of running an
5431   integer overflow later.
5432   
5433   Fixes #1730
5434   Closes #1736
5435
5436 - glob: do not continue parsing after a strtoul() overflow range
5437   
5438   Added test 1289 to verify.
5439   
5440   CVE-2017-1000101
5441   
5442   Bug: https://curl.haxx.se/docs/adv_20170809A.html
5443   Reported-by: Brian Carpenter
5444
5445 - tftp: reject file name lengths that don't fit
5446   
5447   ... and thereby avoid telling send() to send off more bytes than the
5448   size of the buffer!
5449   
5450   CVE-2017-1000100
5451   
5452   Bug: https://curl.haxx.se/docs/adv_20170809B.html
5453   Reported-by: Even Rouault
5454   
5455   Credit to OSS-Fuzz for the discovery
5456
5457 - [Even Rouault brought this change]
5458
5459   file: output the correct buffer to the user
5460   
5461   Regression brought by 7c312f84ea930d8 (April 2017)
5462   
5463   CVE-2017-1000099
5464   
5465   Bug: https://curl.haxx.se/docs/adv_20170809C.html
5466   
5467   Credit to OSS-Fuzz for the discovery
5468
5469 - easy_events: make event data static
5470   
5471   First: this function is only used in debug-builds and not in
5472   release/real builds. It is used to drive tests using the event-based
5473   API.
5474   
5475   A pointer to the local struct is passed to CURLMOPT_TIMERDATA, but the
5476   CURLMOPT_TIMERFUNCTION calback can in fact be called even after this
5477   funtion returns, namely when curl_multi_remove_handle() is called.
5478   
5479   Reported-by: Brian Carpenter
5480
5481 - getparameter: avoid returning uninitialized 'usedarg'
5482   
5483   Fixes #1728
5484
5485 Marcel Raad (5 Aug 2017)
5486 - [Isaac Boukris brought this change]
5487
5488   gssapi: fix memory leak of output token in multi round context
5489   
5490   When multiple rounds are needed to establish a security context
5491   (usually ntlm), we overwrite old token with a new one without free.
5492   Found by proposed gss tests using stub a gss implementation (by
5493   valgrind error), though I have confirmed the leak with a real
5494   gssapi implementation as well.
5495   
5496   Closes https://github.com/curl/curl/pull/1733
5497
5498 - darwinssl: fix compiler warning
5499   
5500   clang complains:
5501   vtls/darwinssl.c:40:8: error: extra tokens at end of #endif directive
5502   [-Werror,-Wextra-tokens]
5503   
5504   This breaks the darwinssl build on Travis. Fix it by making this token
5505   a comment.
5506   
5507   Closes https://github.com/curl/curl/pull/1734
5508
5509 - CMake: fix CURL_WERROR for MSVC
5510   
5511   When using CURL_WERROR in MSVC builds, the debug flags were overridden
5512   by the release flags and /WX got added twice in debug mode.
5513   
5514   Closes https://github.com/curl/curl/pull/1715
5515
5516 Daniel Stenberg (4 Aug 2017)
5517 - RELEASE-NOTES: synced with 561e9217c
5518
5519 - test1010: verify that #1718 is fixed
5520   
5521   ... by doing two transfers in nocwd mode and check that there's no
5522   superfluous CWD command.
5523
5524 - FTP: skip unnecessary CWD when in nocwd mode
5525   
5526   ... when reusing a connection. If it didn't do any CWD previously.
5527   
5528   Fixes #1718
5529
5530 Marcel Raad (4 Aug 2017)
5531 - travis: explicitly specify dist
5532   
5533   This makes the builds more reproducible as travis is currently rolling
5534   out trusty as default dist [1]. Specifically, this avoids coverage
5535   check failures when trusty is used as seen in [2] until we figure out
5536   what's wrong.
5537   
5538   [1] https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
5539   [2] https://github.com/curl/curl/pull/1692
5540   
5541   Closes https://github.com/curl/curl/pull/1725
5542
5543 Daniel Stenberg (4 Aug 2017)
5544 - travis: BUILD_TYPE => T
5545   
5546   (to make the full line appear nicer on travis web UI)
5547
5548 - travis: add osx build with darwinssl
5549   
5550   Closes #1706
5551
5552 - darwin: silence compiler warnings
5553   
5554   With a clang pragma and three type fixes
5555   
5556   Fixes #1722
5557
5558 - BUILD.WINDOWS: mention buildconf.bat for builds off git
5559
5560 - darwinssl: fix curlssl_sha256sum() compiler warnings on first argument
5561
5562 - test130: verify comments in .netrc
5563
5564 - [Gisle Vanem brought this change]
5565
5566   netrc: skip lines starting with '#'
5567   
5568   Bug: https://curl.haxx.se/mail/lib-2017-08/0008.html
5569
5570 Marcel Raad (3 Aug 2017)
5571 - CMake: set MSVC warning level to 4
5572   
5573   The MSVC warning level defaults to 3 in CMake. Change it to 4, which is
5574   consistent with the Visual Studio and NMake builds. Disable level 4
5575   warning C4127 for the library and additionally C4306 for the test
5576   servers to get a clean CURL_WERROR build as that warning is raised in
5577   some macros in older Visual Studio versions.
5578   
5579   Ref: https://github.com/curl/curl/pull/1667#issuecomment-314082794
5580   Closes https://github.com/curl/curl/pull/1711
5581
5582 Daniel Stenberg (2 Aug 2017)
5583 - CURLOPT_NETRC.3: fix typo in 7e48aa386156f9c2
5584   
5585   Reported-by: Viktor Szakats
5586
5587 - CURLOPT_NETRC.3: mention the file name on windows
5588   
5589   ... and CURLOPT_NETRC_FILE(3).
5590
5591 - travis: build osx with libressl too
5592
5593 - travis: build osx with openssl too
5594
5595 - tests/server/util: fix curltime mistake from 4dee50b9c80f9
5596
5597 Marcel Raad (1 Aug 2017)
5598 - curl_threads: fix MSVC compiler warning
5599   
5600   Use LongToHandle to convert from long to HANDLE in the Win32
5601   implementation.
5602   This should fix the following warning when compiling with
5603   MSVC 11 (2012) in 64-bit mode:
5604   lib\curl_threads.c(113): warning C4306:
5605   'type cast' : conversion from 'long' to 'HANDLE' of greater size
5606   
5607   Closes https://github.com/curl/curl/pull/1717
5608
5609 Daniel Stenberg (1 Aug 2017)
5610 - BUGS: improved phrasing about security bugs
5611   
5612   Reported-by: Max Dymond
5613
5614 - BUGS: clarify how to report security related bugs
5615
5616 - [Brad Spencer brought this change]
5617
5618   multi: fix request timer management
5619   
5620   There are some bugs in how timers are managed for a single easy handle
5621   that causes the wrong "next timeout" value to be reported to the
5622   application when a new minimum needs to be recomputed and that new
5623   minimum should be an existing timer that isn't currently set for the
5624   easy handle.  When the application drives a set of easy handles via the
5625   `curl_multi_socket_action()` API (for example), it gets told to wait the
5626   wrong amount of time before the next call, which causes requests to
5627   linger for a long time (or, it is my guess, possibly forever).
5628   
5629   Bug: https://curl.haxx.se/mail/lib-2017-07/0033.html
5630
5631 Jay Satiro (1 Aug 2017)
5632 - curl_setup: Define CURL_NO_OLDIES for building libcurl
5633   
5634   .. to catch accidental use of deprecated error codes.
5635   
5636   Ref: https://github.com/curl/curl/issues/1688#issuecomment-316764237
5637
5638 Daniel Stenberg (1 Aug 2017)
5639 - [Jeremy Tan brought this change]
5640
5641   configure: fix the check for IdnToUnicode
5642   
5643   Fixes #1669
5644   Closes #1713
5645
5646 - http: fix response code parser to avoid integer overflow
5647   
5648   test 1429 and 1433 were updated to work with the stricter HTTP status line
5649   parser.
5650   
5651   Closes #1714
5652   Reported-by: Brian Carpenter
5653
5654 Jay Satiro (31 Jul 2017)
5655 - [Dwarakanath Yadavalli brought this change]
5656
5657   libcurl: Stop using error codes defined under CURL_NO_OLDIES
5658   
5659   Fixes https://github.com/curl/curl/issues/1688
5660   Closes https://github.com/curl/curl/pull/1712
5661
5662 - include.d: clarify --include is only for response headers
5663   
5664   Follow-up to 171f8de and de6de94.
5665   
5666   Bug: https://github.com/curl/curl/commit/de6de94#commitcomment-23370851
5667   Reported-by: Daniel Stenberg
5668
5669 Daniel Stenberg (30 Jul 2017)
5670 - [Jason Juang brought this change]
5671
5672   cmake: support make uninstall
5673   
5674   Closes #1674
5675
5676 - RELEASE-NOTES: synced with 001701c47
5677
5678 Marcel Raad (29 Jul 2017)
5679 - AppVeyor: now really use CURL_WERROR
5680   
5681   It was misspelled as CURL_ERROR in commit
5682   2d86e8d1286e0fbe3d811e2e87fa0b5e53722db4.
5683   
5684   Closes https://github.com/curl/curl/pull/1686
5685
5686 Jay Satiro (29 Jul 2017)
5687 - tool_help: clarify --include is only for response headers
5688   
5689   Follow-up to 171f8de.
5690   
5691   Ref: https://github.com/curl/curl/issues/1704
5692
5693 - splay: fix signed/unsigned mismatch warning
5694   
5695   Follow-up to 4dee50b.
5696   
5697   Ref: https://github.com/curl/curl/pull/1693
5698
5699 Daniel Stenberg (28 Jul 2017)
5700 - include.d: clarify that it concerns the response headers
5701   
5702   Reported-by: olesteban at github
5703   Fixes #1704
5704
5705 - [Johannes Schindelin brought this change]
5706
5707   curl_rtmp: fix a compiler warning
5708   
5709   The headers of librtmp declare the socket as `int`, and on Windows, that
5710   disagrees with curl_socket_t.
5711   
5712   Bug: #1652
5713   
5714   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
5715
5716 - test1323: verify curlx_tvdiff
5717
5718 - timeval: struct curltime is a struct timeval replacement
5719   
5720   ... to make all libcurl internals able to use the same data types for
5721   the struct members. The timeval struct differs subtly on several
5722   platforms so it makes it cumbersome to use everywhere.
5723   
5724   Ref: #1652
5725   Closes #1693
5726
5727 - darwinssl: fix variable type mistake (regression)
5728   
5729   ... which made --tlsv1.2 not work because it would blank the max tls
5730   version variable.
5731   
5732   Reported-by: Nick Miyake
5733   Bug: #1703
5734
5735 - multi: mention integer overflow risk if using > 500 million sockets
5736   
5737   Reported-by: ovidiu-benea@users.noreply.github.com
5738   
5739   Closes #1675
5740   Closes #1683
5741
5742 - checksrc: escape open brace in regex
5743   
5744   ... to silence warning.
5745
5746 Kamil Dudka (20 Jul 2017)
5747 - nss: fix a possible use-after-free in SelectClientCert()
5748   
5749   ... causing a SIGSEGV in showit() in case the handle used to initiate
5750   the connection has already been freed.
5751   
5752   This commit fixes a bug introduced in curl-7_19_5-204-g5f0cae803.
5753   
5754   Reported-by: Rob Sanders
5755   Bug: https://bugzilla.redhat.com/1436158
5756
5757 - nss: unify the coding style of nss_send() and nss_recv()
5758   
5759   No changes in behavior intended by this commit.
5760
5761 Marcel Raad (18 Jul 2017)
5762 - tests/server/resolve.c: fix deprecation warning
5763   
5764   MSVC warns that gethostbyname is deprecated. Always use getaddrinfo
5765   instead to fix this when IPv6 is enabled, also for IPv4 resolves. This
5766   is also consistent with what libcurl does.
5767   
5768   Closes https://github.com/curl/curl/pull/1682
5769
5770 Jay Satiro (17 Jul 2017)
5771 - darwinssl: fix pinnedpubkey build error
5772   
5773   - s/SessionHandle/Curl_easy/
5774   
5775   Bug: https://github.com/curl/curl/commit/eb16305#commitcomment-23035670
5776   Reported-by: Gisle Vanem
5777
5778 Marcel Raad (16 Jul 2017)
5779 - rtspd: fix GCC warning after MSVC warning fix
5780   
5781   Older GCC warns:
5782   /tests/server/rtspd.c:1194:10: warning: missing braces around
5783   initializer [-Wmissing-braces]
5784   
5785   Fix this by using memset instead of an initializer.
5786
5787 - libtest: fix MSVC warning C4706
5788   
5789   With warning level 4, MSVC warns about assignments within conditional
5790   expressions. Change the while loop to a do-while loop to fix this. This
5791   change is also consistent with CODE_STYLE.md.
5792
5793 - sockfilt: suppress conversion warning with explicit cast
5794   
5795   MSVC warns when implicitly casting -1 to unsigned long.
5796
5797 - rtspd: fix MSVC level 4 warning
5798   
5799   warning C4701: potentially uninitialized local variable 'req' used
5800
5801 - winbuild: re-enable warning C4127 for curl tool
5802   
5803   Disabled in cda19a345f6970e22fe8b7a808aeb8f086a21eac. It only needs to
5804   be disabled for libcurl.
5805
5806 - winbuild: build with warning level 4
5807   
5808   This is consistent with 7bc64561a2e63ca93e4b0b31d350773ba80955c2, which
5809   changed the warning level from 3 to 4 for the Visual Studio project
5810   files. But disable the level 4 warning C4127 "conditional expression is
5811   constant", as that one is issued by older versions of the Windows SDK
5812   as well as curl itself under some circumstances.
5813   
5814   Closes https://github.com/curl/curl/pull/1667
5815
5816 Jay Satiro (12 Jul 2017)
5817 - [Max Dymond brought this change]
5818
5819   travis: install libidn2
5820   
5821   Install libidn2 to increase test coverage (IDN tests)
5822   
5823   Closes https://github.com/curl/curl/pull/1673
5824
5825 Marcel Raad (12 Jul 2017)
5826 - travis: enable warnings also in release mode
5827   
5828   ... to get warnings also on Linux/GCC and OSX/clang.
5829   
5830   Closes https://github.com/curl/curl/pull/1666
5831
5832 Daniel Stenberg (12 Jul 2017)
5833 - [Max Dymond brought this change]
5834
5835   travis: install libssh2
5836   
5837   Install libssh2 to increase test coverage (SFTP, SCP)
5838
5839 Marcel Raad (12 Jul 2017)
5840 - system.h: include winsock2.h before windows.h
5841   
5842   ... to avoid compiler warnings if the user doesn't want
5843   WIN32_LEAN_AND_MEAN.
5844
5845 - build: remove WIN32_LEAN_AND_MEAN from individual build systems
5846   
5847   It's defined for all build systems in curl_setup.h since commit
5848   beb08481d01a07a8b10938b1078a5e298b1c2912. This caused macro
5849   redefinition warnings in the configure builds.
5850   
5851   Closes https://github.com/curl/curl/pull/1677
5852
5853 Jay Satiro (11 Jul 2017)
5854 - ISSUE_TEMPLATE: Add a comment not to file security issues on github
5855
5856 Marcel Raad (11 Jul 2017)
5857 - curl_setup: always define WIN32_LEAN_AND_MEAN on Windows
5858   
5859   Make sure to always define WIN32_LEAN_AND_MEAN before including any
5860   Windows headers to avoid pulling in unnecessary headers. This avoids
5861   unnecessary macro clashes and compiler warnings.
5862   
5863   Ref: https://github.com/curl/curl/issues/1562
5864   Closes https://github.com/curl/curl/pull/1672
5865
5866 Jay Satiro (11 Jul 2017)
5867 - strerror: Preserve Windows error code in some functions
5868   
5869   This is a follow-up to af02162 which removed (SET_)ERRNO macros. That
5870   commit was an earlier draft that I committed by mistake, which was then
5871   remedied by a5834e5 and e909de6, and now this commit. With this commit
5872   there is now no difference between the current code and the changes that
5873   were approved in the final draft.
5874   
5875   Thanks-to: Max Dymond, Marcel Raad, Daniel Stenberg, Gisle Vanem
5876   Ref: https://github.com/curl/curl/pull/1589
5877
5878 Marcel Raad (10 Jul 2017)
5879 - [Max Dymond brought this change]
5880
5881   tests: Fix up issues with errno in test files
5882   
5883   Closes https://github.com/curl/curl/pull/1671
5884
5885 Daniel Stenberg (10 Jul 2017)
5886 - errno: fix non-windows builds after af0216251b94e7
5887
5888 - [Ryan Winograd brought this change]
5889
5890   make: fix docs build on OpenBSD
5891   
5892   Ref: #1591
5893
5894 Marcel Raad (10 Jul 2017)
5895 - ldap: fix MinGW compiler warning
5896   
5897   ldap_bind_s is marked as deprecated in w32api's winldap.h shipping with
5898   the latest original MinGW, resulting in compiler warnings since commit
5899   f0fe66f13c93d3d0af45d9fb1231c9164e0f9dc8. Fix this for the non-SSPI
5900   case by using ldap_simple_bind_s again instead of ldap_bind_s with
5901   LDAP_AUTH_SIMPLE.
5902   
5903   Closes https://github.com/curl/curl/pull/1664
5904
5905 - curl-compilers.m4: disable warning spam with Cygwin's clang
5906   
5907   When building with Cygwin or MinGW, libtool uses a wrapper executable
5908   instead of a wrapper script [1], which is written in C and throws
5909   missing-variable-declarations warnings. Don't enable these warnings on
5910   Cygwin and MinGW in order to avoid warnings for every executable built,
5911   which spams the test suite output when using Cygwin's clang.
5912   
5913   [1] https://www.gnu.org/software/libtool/manual/html_node/Wrapper-executables.html
5914   
5915   Closes https://github.com/curl/curl/pull/1665
5916
5917 Jay Satiro (10 Jul 2017)
5918 - curl_setup_once: Remove ERRNO/SET_ERRNO macros
5919   
5920   Prior to this change (SET_)ERRNO mapped to GetLastError/SetLastError
5921   for Win32 and regular errno otherwise.
5922   
5923   I reviewed the code and found no justifiable reason for conflating errno
5924   on WIN32 with GetLastError/SetLastError. All Win32 CRTs support errno,
5925   and any Win32 multithreaded CRT supports thread-local errno.
5926   
5927   Fixes https://github.com/curl/curl/issues/895
5928   Closes https://github.com/curl/curl/pull/1589
5929
5930 - tool_getparam: fix potentially uninitialized err
5931
5932 Marcel Raad (9 Jul 2017)
5933 - smb: rename variable to fix shadowing warning
5934   
5935   GCC 4.6.3 on travis complains:
5936   smb.c: In function ‘get_posix_time’:
5937   smb.c:725:13: error: declaration of ‘time’ shadows a global declaration
5938   [-Werror=shadow]
5939   
5940   Fix this by renaming the variable.
5941
5942 - tool_cb_wrt: fix variable shadowing warning
5943   
5944   GCC 4.4 complains:
5945   tool_cb_wrt.c:81: error: declaration of ‘isatty’ shadows a global
5946   declaration
5947   /usr/include/unistd.h:782: error: shadowed declaration is here
5948   
5949   Fix this by renaming the variable.
5950   
5951   Closes https://github.com/curl/curl/pull/1661
5952
5953 Daniel Stenberg (8 Jul 2017)
5954 - RELEASE-NOTES: synced with be2c999b8
5955
5956 - travis: install stunnel
5957
5958 - valgrind.supp: supress OpenSSL false positive seen on travis
5959
5960 - travis: detect and use valgrind for normal builds
5961   
5962   Closes #1653
5963
5964 - travis: add SMB, DICT, TELNET torture to coverage test
5965
5966 - [Paul Harris brought this change]
5967
5968   cmake: offer CMAKE_DEBUG_POSTFIX when building with MSVC
5969   
5970   Removes BUILD_RELEASE_DEBUG_DIRS since it wasn't used anywhere.
5971   
5972   Closes #1649
5973
5974 - CURLOPT_POSTFIELDS.3: explain the 100-continue magic better
5975
5976 - [Max Dymond brought this change]
5977
5978   test1452: add telnet negotiation
5979   
5980   Add a basic telnet server for negotiating some telnet options before
5981   echoing back any data that's sent to it.
5982   
5983   Closes #1645
5984
5985 - travis: do more tests in the coverage run
5986   
5987   I added a selection of torture and event tests that run "fast enough"
5988
5989 - curl_easy_escape.3: mention the (lack of) encoding
5990   
5991   Fixes #1612
5992   Reported-by: Jeroen Ooms
5993
5994 - [Gisle Vanem brought this change]
5995
5996   memdebug: don't setbuf() if the file open failed
5997   
5998   Bug: https://github.com/curl/curl/issues/828#issuecomment-313475151
5999
6000 - appveyor: enable CURL_WERROR on all builds
6001
6002 - cmake: add CURL_WERROR for enabling "warning as errors"
6003
6004 - [Hannes Magnusson brought this change]
6005
6006   cmake: remove spurious "-l" from linker flags
6007   
6008   Fixes #1552
6009
6010 - test506: skip if threaded-resolver
6011
6012 - runtests: support "threaded-resolver" as a feature
6013   
6014   ... to let tests require it or skip if present
6015
6016 - asyn-thread.c: fix unused variable warnings on macOS
6017
6018 - http: s/TINY_INITIAL_POST_SIZE/EXPECT_100_THRESHOLD
6019   
6020   Make the name reflect its use better, and add a short comment describing
6021   what it's for.
6022
6023 - cmake: if inet_pton is used, bump _WIN32_WINNT
6024   
6025   ... and make sure inet_pton is always checked for when *not* using Windows,
6026   which is a regression from 4fc6ebe18.
6027   
6028   Idea-by: Sergei Nikulov
6029
6030 - select.h: avoid macro redefinition harder
6031   
6032   ... by checking the POLLIN define, as the header file checks don't work
6033   on Windows.
6034
6035 - inet_pton: fix include on windows to get prototype
6036   
6037   inet_pton() exists on Windows and gets used by our cmake builds. Make
6038   sure the correct header file is included to avoid compiler warnings.
6039   
6040   Closes #1639
6041
6042 - TODO: 1.10 auto-detect proxy
6043   
6044   Closes #1572
6045
6046 - TODO: HTTP proxy CONNECT is non-blocking now
6047
6048 - cmake: fix send/recv argument scanner for windows
6049   
6050   ... by simply trying the Windows argument types first.
6051   
6052   Fixes #1640
6053
6054 - RELEASE-NOTES: synced with 596cfb6c0
6055
6056 - [Gisle Vanem brought this change]
6057
6058   smb: add support for CURLOPT_FILETIME
6059   
6060   Bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6061   
6062   Closes #1643
6063
6064 - travis: install nghttp2 on linux builds
6065   
6066   Closes #1642
6067
6068 - [Gisle Vanem brought this change]
6069
6070   smb: fix build for djgpp/MSDOS
6071   
6072   bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6073
6074 - configure: try ldap/lber in reversed order first
6075   
6076   When scanning for which LDAP libraries to use, try the -lldap -llber
6077   combination before the reversed order since it has a greater chance of
6078   working when linking with libcurl statically.
6079   
6080   Fixes #1619
6081   Closes #1634
6082   Reported-by: David E. Narváez
6083
6084 - configure: remove checks for 5 functions never used
6085   
6086   fork, getprotobyname, inet_addr, perror, uname
6087   
6088   closes #1638
6089
6090 - dist: add SMB python deps into the tarball
6091
6092 - [Max Dymond brought this change]
6093
6094   test1451: add SMB support to the testbed
6095   
6096   Add test 1451 which does some very basic SMB testing using the impacket
6097   SMB server.
6098   
6099   Closes #1630
6100
6101 - [Max Dymond brought this change]
6102
6103   test: add impacket for SMB testing
6104   
6105   Import impacket 0.9.15 for use in SMB testing. This was generated by
6106   doing "pip2.7 install -t . impacket"
6107   
6108   Unnecessary files for current testing were deleted.
6109
6110 - travis.yml: use --enable-werror on debug builds
6111   
6112   ... to better detect and fault on compiler warnings/errors
6113   
6114   Closes #1637
6115
6116 - tool_sleep: typecast to avoid macos compiler warning
6117   
6118   tool_sleep.c:54:24: error: implicit conversion loses integer precision:
6119   'long' to '__darwin_suseconds_t' (aka 'int')
6120   [-Werror,-Wshorten-64-to-32]
6121
6122 - [Martin Kepplinger brought this change]
6123
6124   timeval.c: Use long long constant type for timeval assignment
6125   
6126   On a 64 bit host, sparse says:
6127   
6128   timeval.c:148:15: warning: constant 0x7fffffffffffffff is so big it is long
6129   timeval.c:149:12: warning: constant 0x7fffffffffffffff is so big it is long
6130   
6131   so let's use long long constant types in order to prevent undesired overflow
6132   failures.
6133   
6134   Bug: https://curl.haxx.se/mail/lib-2017-07/0003.html
6135   
6136   Closes #1636
6137   
6138   Signed-off-by: Martin Kepplinger <martink@posteo.de>
6139
6140 - url: make the original string get used on subsequent transfers
6141   
6142   ... since CURLOPT_URL should follow the same rules as other options:
6143   they remain set until changed or cleared.
6144   
6145   Added test 1551 to verify.
6146   
6147   Fixes #1631
6148   Closes #1632
6149   Reported-by: Pavel Rochnyak
6150
6151 - [Johannes Schindelin brought this change]
6152
6153   gtls: fix build when sizeof(long) < sizeof(void *)
6154   
6155   - Change gnutls pointer/int macros to pointer/curl_socket_t.
6156     Prior to this change they used long type as well.
6157   
6158   The size of the `long` data type can be shorter than that of pointer
6159   types. This is the case most notably on Windows.
6160   
6161   If C99 were acceptable, we could simply use `intptr_t` here. But we
6162   want to retain C89 compatibility.
6163   
6164   Simply use the trick of performing pointer arithmetic with the NULL
6165   pointer: to convert an integer `i` to a pointer, simply take the
6166   address of the `i`th element of a hypothetical character array
6167   starting at address NULL. To convert back, simply cast the pointer
6168   difference.
6169   
6170   Thanks to Jay Satiro for the initial modification to use curl_socket_t
6171   instead of int/long.
6172   
6173   Closes #1617
6174   
6175   Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6176
6177 - [Ryan Winograd brought this change]
6178
6179   unit1399: fix integer overflow
6180   
6181   Bug: #1616
6182   Closes #1633
6183
6184 - [Per Malmberg brought this change]
6185
6186   cmake: Added compatibility options for older Windows versions
6187   
6188   CURL_STATIC_CRT and ENABLE_INET_PTON
6189   
6190   Closes #1621
6191
6192 - unit1399: add logging to time comparison
6193   
6194   ... to enable tracking down why autobuilds fail on this
6195   
6196   Bug: #1616
6197
6198 - make: build the docs subdir only from within src
6199   
6200   ... and don't build at all in include
6201   
6202   Prompted-by-work-by: Simon Warta
6203   Ref: #1590
6204   Closes #1591
6205
6206 - [Max Dymond brought this change]
6207
6208   test1450: fix up DICT server in torture mode
6209   
6210   As per https://github.com/curl/curl/pull/1615, the DICT server is a
6211   little spammy in torture mode due to the sockets being torn down
6212   unexpectedly. Fix this by adding some error handling to the handling
6213   function.
6214   
6215   Closes #1629
6216
6217 - [Max Dymond brought this change]
6218
6219   test1450: add simple testing for DICT
6220   
6221   Add a new server which provides a DICT interface. This is intended to
6222   begin coverage testing for lib/dict.c
6223   
6224   Closes #1615
6225
6226 - [Dan Fandrich brought this change]
6227
6228   test1521: fix out-of-tree builds, broken with 467da3af
6229   
6230   The test.h file is no longer in the same directory as the source file,
6231   so that directory needs to be added to the include path.
6232   
6233   Fixes #1627
6234   Closes #1628
6235
6236 - [Max Dymond brought this change]
6237
6238   http2: handle PING frames
6239   
6240   Add a connection check function to HTTP2 based off RTSP. This causes
6241   PINGs to be handled the next time the connection is reused.
6242   
6243   Closes #1521
6244
6245 - [Max Dymond brought this change]
6246
6247   handler: refactor connection checking
6248   
6249   Add a new type of callback to Curl_handler which performs checks on
6250   the connection. Alter RTSP so that it uses this callback to do its
6251   own check on connection health.
6252
6253 - [Dmitry Kostjuchenko brought this change]
6254
6255   openssl: improve fallback seed of PRNG with a time based hash
6256   
6257   Fixes #1620
6258
6259 - [Ryan Winograd brought this change]
6260
6261   progress: prevent resetting t_starttransfer
6262   
6263   Prevent `Curl_pgrsTime` from modifying `t_starttransfer` when invoked
6264   with `TIMER_STARTTRANSFER` more than once during a single request.
6265   
6266   When a redirect occurs, this is considered a new request and
6267   `t_starttransfer` can be updated to reflect the `t_starttransfer` time
6268   of the redirect request.
6269   
6270   Closes #1616
6271   
6272   Bug: https://github.com/curl/curl/pull/1602#issuecomment-310267370
6273
6274 - curl_strequal.3: fix typo in SYNOPSIS
6275   
6276   Reported-by: Jesse Chisholm
6277   
6278   Fixes #1623
6279
6280 - RELEASE-NOTES: synced with ce2c3ebda
6281
6282 Kamil Dudka (28 Jun 2017)
6283 - curl --socks5-{basic,gssapi}: control socks5 auth
6284   
6285   Closes https://github.com/curl/curl/pull/1454
6286
6287 - CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth
6288   
6289   If libcurl was built with GSS-API support, it unconditionally advertised
6290   GSS-API authentication while connecting to a SOCKS5 proxy.  This caused
6291   problems in environments with improperly configured Kerberos: a stock
6292   libcurl failed to connect, despite libcurl built without GSS-API
6293   connected fine using username and password.
6294   
6295   This commit introduces the CURLOPT_SOCKS5_AUTH option to control the
6296   allowed methods for SOCKS5 authentication at run time.
6297   
6298   Note that a new option was preferred over reusing CURLOPT_PROXYAUTH
6299   for compatibility reasons because the set of authentication methods
6300   allowed by default was different for HTTP and SOCKS5 proxies.
6301   
6302   Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html
6303   Closes https://github.com/curl/curl/pull/1454
6304
6305 - socks: deduplicate the code for auth request
6306
6307 - socks: use proxy_user instead of proxy_name
6308   
6309   ... to make it obvious what the data is used for
6310
6311 Daniel Stenberg (27 Jun 2017)
6312 - libtest/make: generate lib1521.c
6313   
6314   ... instead of having the generated code checked in. This saves space in
6315   the tarball but primarily automatically adapts to newly added options.
6316   
6317   Closes #1614
6318
6319 Jay Satiro (26 Jun 2017)
6320 - tool_getparam: fix memory leak on test 1147 OOM (torture tests)
6321   
6322   Bug: https://github.com/curl/curl/pull/1486#issuecomment-310926872
6323   Reported-by: Dan Fandrich
6324
6325 Dan Fandrich (25 Jun 2017)
6326 - test1537: fixed memory leak on OOM
6327
6328 Marcel Raad (25 Jun 2017)
6329 - test1521: fix compiler warnings
6330   
6331   The integer literal 3123123123 doesn't fit into a 32-bit signed
6332   integer, so GCC with 32-bit long warns in C90 mode:
6333   this decimal constant is unsigned only in ISO C90 [enabled by default]
6334   Fix this by using ULONG_MAX, which should fit in any curl_off_t and has
6335   the correct suffix to not issue any warnings.
6336   Also adds the missing CURLOPT_REQUEST_TARGET from commit
6337   9b167fd090f596eac828817d48c247eeae53407f.
6338   
6339   Closes https://github.com/curl/curl/pull/1611
6340
6341 Daniel Stenberg (24 Jun 2017)
6342 - curl/system.h: add check for XTENSA for 32bit gcc
6343   
6344   Reported-by: Neil Kolban
6345   Fixes: 1598
6346
6347 - [Henrik S. Gaßmann brought this change]
6348
6349   winbuild: fix boringssl build
6350   
6351   Compile with `WIN32_LEAN_AND_MEAN` which prevents `windows.h` from
6352   including too much clutter including `wincrypt.h` which in turn contains
6353   some preprocessor macros that clash with boringssl symbols.
6354   
6355   Detect boringssl by checking the existance of `is_boringssl.h` and set
6356   the corresponding `HAVE_BORINGSSL` for compilation which is used in
6357   `ldap.c` to undefine the evil macros.
6358   
6359   Closes #1610
6360
6361 - progress: progress.timespent needs to be us
6362   
6363   follow-up to 64ed44a815e4e to fix test 500 failures
6364
6365 Marcel Raad (24 Jun 2017)
6366 - curl-compilers.m4: fix unknown-warning-option on Apple clang
6367   
6368   Since 5598b0bd63f690c151074494ce47ef872f004ab4, clang -v is used to
6369   detect the clang version. The version number was expected to come after
6370   the word "version". For Apple clang, this doesn't work as it has its
6371   own versioning scheme.
6372   The version number is now first searched after the string
6373   "based on LLVM". This works for Apple clang before version 7, and also
6374   for e.g. Ubuntu's clang up to version 3.7. If it's not found and the
6375   version string contains "Apple LLVM version", clang version 3.7 is
6376   assumed, which is the version that comes with Xcode 7. Otherwise, the
6377   version number is still expected after the word "version", which works
6378   for very old Apple clang versions.
6379   
6380   Ref: https://trac.macports.org/wiki/XcodeVersionInfo
6381   Fixes https://github.com/curl/curl/issues/1606
6382   Closes https://github.com/curl/curl/pull/1607
6383
6384 Daniel Stenberg (24 Jun 2017)
6385 - progress: fix "time spent", broke in adef394ac
6386
6387 - CURLINFO_REDIRECT_URL.3: mention the CURLOPT_MAXREDIRS case
6388   
6389   ... supported since 7.54.1
6390
6391 - maketgz: switch to -6e for xz
6392   
6393   To reduce the memory requirement for decompress, and still do almost as
6394   good compression as with -9e.
6395   
6396   Pointed-out-by: Dan Fandrich
6397
6398 - libtest/Makefile: remove unused lib1541 variables
6399
6400 - CONTRIBUTE.md: mention the out-of-tree build test too
6401
6402 - maketgz: switch to xz instead of lzma
6403   
6404   The compressed output size seems to be a tad bit smaller, but generally
6405   xz seems more preferred these days and is used directly by for example
6406   gentoo instead of bz2.
6407   
6408   "Users of LZMA Utils should move to XZ Utils" =>
6409   https://tukaani.org/lzma/
6410   
6411   Closes #1604
6412
6413 - --request-target: instead of --strip-path-slash
6414   
6415   ... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH.
6416   
6417   This option instead provides the full "alternative" target to use in the
6418   request, instead of extracting the path from the URL.
6419   
6420   Test 1298 and 1299 updated accordingly.
6421   
6422   Idea-by: Evert Pot
6423   Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373
6424   
6425   Closes #1593
6426
6427 Marcel Raad (21 Jun 2017)
6428 - lib1521: fix missing-variable-declarations clang warnings
6429   
6430   Declare TU-local variables static.
6431
6432 - travis: enable typecheck-gcc warnings
6433   
6434   - switch debug and release configurations so that we get an optimized
6435     build with GCC 4.3+ as required by typecheck-gcc
6436   - enable warnings-as-errors for release builds
6437     (which have warnings disabled)
6438   
6439   Closes https://github.com/curl/curl/pull/1595
6440
6441 - typecheck-gcc: add support for CURLINFO_OFF_T
6442   
6443   typecheck-gcc expected curl_socket_t instead of curl_off_t arguments
6444   for CURLINFO_OFF_T. Detected by test1521, unfortunately only when run
6445   locally.
6446   
6447   Closes https://github.com/curl/curl/pull/1592
6448
6449 Daniel Stenberg (21 Jun 2017)
6450 - [Simon Warta brought this change]
6451
6452   ci: whitelist branches to avoid testing feature branches twice
6453
6454 - [Gisle Vanem brought this change]
6455
6456   lib: fix the djgpp build
6457   
6458   Bug: https://github.com/curl/curl/commit/73a2fcea0b4adea6ba342cd7ed1149782c214ae3#commitcomment-22655993
6459
6460 Marcel Raad (20 Jun 2017)
6461 - if2ip: fix compiler warning in ISO C90 mode
6462   
6463   remote_scope_id is only used when both HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
6464   and ENABLE_IPV6 are defined instead of only one of them.
6465
6466 Daniel Stenberg (20 Jun 2017)
6467 - travis: do the distcheck test build out-of-tree as well
6468
6469 - http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASH
6470   
6471   ... to enable sending "OPTIONS *" which wasn't possible previously.
6472   
6473   This option currently only works for HTTP.
6474   
6475   Added test cases 1298 + 1299 to verify
6476   
6477   Fixes #1280
6478   Closes #1462
6479
6480 - test1521: test getinfo's OFF_T types too
6481   
6482   Closes #1588
6483
6484 - lib1521: add curl_easy_getinfo calls to the test set
6485   
6486   Also added return value checks to make sure no unexpected return codes
6487   are used.
6488
6489 - [Simon Warta brought this change]
6490
6491   automake: use $(MKHELP) variable instead if constant mkhelp.pl
6492   
6493   this improves symmetry with the rule above
6494
6495 - [Simon Warta brought this change]
6496
6497   mkhelp.pl: fix script name in usage text
6498
6499 - RELEASE-NOTES: synced with 3b80d3ca4
6500
6501 - getinfo: return sizes as curl_off_t
6502   
6503   This change introduces new alternatives for the existing six
6504   curl_easy_getinfo() options that return sizes or speeds as doubles. The
6505   new versions are named like the old ones but with an appended '_T':
6506   
6507   CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
6508   CURLINFO_CONTENT_LENGTH_UPLOAD_T
6509   CURLINFO_SIZE_DOWNLOAD_T
6510   CURLINFO_SIZE_UPLOAD_T
6511   CURLINFO_SPEED_DOWNLOAD_T
6512   CURLINFO_SPEED_UPLOAD_T
6513   
6514   Closes #1511
6515
6516 - PIPELINING_SERVER_BL: cleanup the internal list use
6517   
6518   The list was freed incorrectly since the llist refactor of
6519   cbae73e1dd959. Added test 1550 to verify that it works and avoid future
6520   regressions.
6521   
6522   Reported-by: Pascal Terjan
6523   
6524   Fixes #1584
6525   Closes #1585
6526
6527 - http2: fix OOM crash
6528   
6529   torture mode with test 1021 found it
6530
6531 - CURLOPT_PREQUOTE.3: spellfix man page reference
6532
6533 Marcel Raad (18 Jun 2017)
6534 - http_proxy: fix build with http and proxy
6535   
6536   After deff7de0eb0e22d2d142b96b9cc84cd8db5d2a48, the build without
6537   CURL_DISABLE_PROXY and CURL_DISABLE_HTTP was failing because of missing
6538   includes.
6539
6540 - http_proxy: fix compiler warning
6541   
6542   With CURL_DISABLE_PROXY or CURL_DISABLE_HTTP, GCC complained about a
6543   missing prototype for Curl_connect_free.
6544
6545 Daniel Stenberg (18 Jun 2017)
6546 - TODO: update the TOC too
6547
6548 - TODO: implement support for CURLOPT_PREQUOTE with SFTP
6549   
6550   ... also updated the CURLOPT_PREQUOTE.3 man page to mention the correct
6551   protocol support.
6552   
6553   Closes #1514
6554
6555 - tool_wrte_cb: remove check for config == NULL
6556   
6557   ... as it really cannot have reached this far with config being NULL,
6558   thus this is unnecesary and misleading.
6559   
6560   Bug: https://news.ycombinator.com/item?id=14577585 and
6561   https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/comment-page-1/#comment-18356
6562   
6563   Forwarded-to-us-by: Jakub Wilk
6564
6565 - curl: prevent binary output spewed to terminal
6566   
6567   ... unless "--output -" is used. Binary detection is done by simply
6568   checking for a binary zero in early data.
6569   
6570   Added test 1425 1426 to verify.
6571   
6572   Closes #1512
6573
6574 Marcel Raad (16 Jun 2017)
6575 - Makefile.m32: enable -W for MinGW32 build
6576   
6577   The configure-based build also has this in addition to -Wall.
6578   
6579   Closes https://github.com/curl/curl/pull/1578
6580
6581 - curl-compilers.m4: enable comma clang warning
6582   
6583   It usually warns when using commas instead of semicolons or other
6584   operators by accident.
6585   
6586   Closes https://github.com/curl/curl/pull/1578
6587
6588 - curl-compilers.m4: enable missing-variable-declarations clang warning
6589   
6590   It usually warns when forgetting to declare TU-local variables static.
6591   
6592   Closes https://github.com/curl/curl/pull/1578
6593
6594 - curl-compilers.m4: enable double-promotion warning
6595   
6596   Enable -Wdouble-promotion for both GCC and clang. It warns on implicit
6597   promotion from float to double.
6598   
6599   Closes https://github.com/curl/curl/pull/1578
6600
6601 - curl-compilers.m4: enable vla warning for clang
6602   
6603   Previously, that warning was only implicitly active in C90 mode.
6604   Enable it unconditionally as already done for GCC.
6605   
6606   Closes https://github.com/curl/curl/pull/1578
6607
6608 Daniel Stenberg (16 Jun 2017)
6609 - http-proxy: fix chunked-encoded CONNECT responses
6610   
6611   Regression since 5113ad0424.
6612   
6613   ... and remove 'flaky' from test 1061 again
6614   
6615   Closes #1579
6616
6617 - http-proxy: deal with EAGAIN
6618   
6619   ... the previous code would reset the header length wrongly (since
6620   5113ad0424). This makes test 1060 reliable again.
6621   
6622   Also: make sws send even smaller chunks of data to increase the
6623   likeliness of this happening.
6624
6625 - libtest/libntlmconnect: fix compiler warnings from f94fcdb
6626
6627 - [Jay Satiro brought this change]
6628
6629   HTTPS-Proxy: don't offer h2 for https proxy connections
6630   
6631   Bug: https://github.com/curl/curl/issues/1254
6632   
6633   Closes #1546
6634
6635 - tests: stabilize test 2032 and 2033
6636   
6637   Both these tests run the same underlying test code: libntlmconnect.c -
6638   this test code made some assumptions about socket ordering when it used
6639   curl_easy_fdset() and when we changed timing or got accidental changes
6640   in libcurl the tests would fail.
6641   
6642   The tests verify that the different transfers keep using the same
6643   connections, which I now instead made sure by adding the number of bytes
6644   each transfer gets and then verifies that they always get the same
6645   amount as when these tests worked.
6646   
6647   Closes #1576
6648
6649 - test1148: verify the -# progressbar
6650   
6651   Closes #1569
6652
6653 - test1061: mark as flaky
6654   
6655   Fails intermittently on travis builds since a few days. Likely due to
6656   5113ad0424.
6657
6658 Jay Satiro (16 Jun 2017)
6659 - url: refactor the check for Windows drive letter in path
6660   
6661   - Move the logic to detect a Windows drive letter prefix
6662     (eg c: in c:foo) into a function-like macro.
6663   
6664   Closes https://github.com/curl/curl/pull/1571
6665
6666 - mk-ca-bundle.pl: Check curl's exit code after certdata download
6667   
6668   - No longer allow partial downloads of certdata.
6669   
6670   Prior to this change partial downloads were (erroneously?) allowed since
6671   only the server code was checked to be 200.
6672   
6673   Bug: https://github.com/curl/curl/pull/1577
6674   Reported-by: Matteo B.
6675
6676 Daniel Stenberg (16 Jun 2017)
6677 - dist: add the fuzz dir to the tarball
6678
6679 - configure: disable nghttp2 too if HTTP has been disabled
6680
6681 - http-proxy: fix build with --disable-proxy or --disable-http
6682   
6683   Reported-by: Dan Fandrich
6684
6685 - fuzz/README: document how to build
6686   
6687   Fixes #1476
6688
6689 - [Frederik B brought this change]
6690
6691   fuzz: corpora file structure, initial commit
6692
6693 - [Frederik B brought this change]
6694
6695   fuzz: bring oss-fuzz initial code converted to C89
6696
6697 - http-proxy: only attempt FTP over HTTP proxy
6698   
6699   ... all other non-HTTP protocol schemes are now defaulting to "tunnel
6700   trough" mode if a HTTP proxy is specified. In reality there are no HTTP
6701   proxies out there that allow those other schemes.
6702   
6703   Assisted-by: Ray Satiro, Michael Kaufmann
6704   
6705   Closes #1505
6706
6707 - TODO: the generated include file is gone
6708   
6709   ... since commit 73a2fcea0b
6710
6711 - curl_setup.h: error out on CURL_WANTS_CA_BUNDLE_ENV use
6712   
6713   ... to make it really apparent if there's any user using this on purpose.
6714   
6715   Suggested-by: Jay Satiro
6716   
6717   Closes #1542
6718
6719 - lib/curl_setup.h: remove CURL_WANTS_CA_BUNDLE_ENV
6720   
6721   When this define was set, libcurl would check the environment variable
6722   named CURL_CA_BUNDLE at run-time and use that CA cert bundle. This
6723   feature was only defined by the watcom and m32 makefiles and caused
6724   inconsistent behaviours among libcurls built on different platforms.
6725   
6726   The curl tool does already feature its own similar logic and the library
6727   does not really need it, and it isn't documented libcurl behavior. So
6728   this change removes it.
6729   
6730   Ref: #1538
6731
6732 - test1147: verify -H on a file
6733
6734 - curl: allow --header and --proxy-header read from file
6735   
6736   So many headers can be provided as @filename.
6737   
6738   Suggested-by: Timothe Litt
6739   
6740   Closes #1486
6741
6742 - RELEASE-NOTES: synced with 2ad80eec5
6743
6744 - curl/curlver.h: start working on 7.55.0
6745
6746 - http-proxy: do the HTTP CONNECT process entirely non-blocking
6747   
6748   Mentioned as a problem since 2007 (8f87c15bdac63) and of course it
6749   existed even before that.
6750   
6751   Closes #1547
6752
6753 - progress: let "current speed" be UL + DL speeds combined
6754   
6755   Bug #1556
6756   Reported-by: Paul Harris
6757   Closes #1559
6758
6759 Marcel Raad (14 Jun 2017)
6760 - system.h: fix MinGW build
6761   
6762   CURLSYS_PULL_WS2TCPIP_H got renamed to CURL_PULL_WS2TCPIP_H in commit
6763   73a2fcea0b4adea6ba342cd7ed1149782c214ae3.
6764
6765 Daniel Stenberg (14 Jun 2017)
6766 - timers: store internal time stamps as time_t instead of doubles
6767   
6768   This gives us accurate precision and it allows us to avoid storing "no
6769   time" for systems with too low timer resolution as we then bump the time
6770   up to 1 microsecond. Should fix test 573 on windows.
6771   
6772   Remove the now unused curlx_tvdiff_secs() function.
6773   
6774   Maintains the external getinfo() API with using doubles.
6775   
6776   Fixes #1531
6777
6778 - dist: make the hugehelp.c not get regenerated unnecessarily
6779   
6780   The maketgz script now makes sure the generated hugehelp.c file in the
6781   tarball is newer than the generated curl.1 man page, so that it doesn't
6782   have to get unnecessarily rebuilt first thing in a typical build. It
6783   thus also removes the need for perl to build off a plain release
6784   tarball.
6785   
6786   Fixes #1565
6787
6788 - includes: remove curl/curlbuild.h and curl/curlrules.h
6789   
6790   Rely entirely on curl/system.h now.
6791   
6792   Introduced in Aug 2008 with commit 14240e9e109f. Now gone.
6793   
6794   Fixes #1456
6795
6796 Version 7.54.1 (14 Jun 2017)
6797
6798 Daniel Stenberg (14 Jun 2017)
6799 - release: 7.54.1
6800
6801 Dan Fandrich (13 Jun 2017)
6802 - mk-lib1521.pl: updated to match the test changes in 916ec30a
6803
6804 Daniel Stenberg (13 Jun 2017)
6805 - [Stuart Henderson brought this change]
6806
6807   libressl: OCSP and intermediate certs workaround no longer needed
6808   
6809   lib/vtls/openssl.c has a workaround for a bug with OCSP responses signed
6810   by intermediate certs, this was fixed in LibreSSL in
6811   https://github.com/libressl-portable/openbsd/commit/912c64f68f7ac4f225b7d1fdc8fbd43168912ba0
6812   
6813   Bug: https://curl.haxx.se/mail/lib-2017-06/0038.html
6814
6815 - url: fix buffer overwrite with file protocol (CVE-2017-9502)
6816   
6817   Bug: https://github.com/curl/curl/issues/1540
6818   Advisory: https://curl.haxx.se/docs/adv_20170614.html
6819   
6820   Assisted-by: Ray Satiro
6821   Reported-by: Marcel Raad
6822
6823 - urlglob: fix division by zero
6824   
6825   The multiply() function that is used to avoid integer overflows, was
6826   itself reason for a possible division by zero error when passed a
6827   specially formatted glob.
6828   
6829   Reported-by: GwanYeong Kim
6830
6831 - configure: update the copyright year in the output
6832
6833 - [ygrek brought this change]
6834
6835   BINDINGS: update SP-Forth and OCaml urls
6836
6837 Michael Kaufmann (11 Jun 2017)
6838 - FindWin32CACert: Use a temporary buffer on the stack
6839   
6840   Don't malloc() the temporary buffer, and use the correct type:
6841   SearchPath() works with TCHAR, but SearchPathA() works with char.
6842   Set the buffer size to MAX_PATH, because the terminating null byte
6843   is already included in MAX_PATH.
6844   
6845   Reviewed-by: Daniel Stenberg
6846   Reviewed-by: Marcel Raad
6847   
6848   Closes #1548
6849
6850 Dan Fandrich (11 Jun 2017)
6851 - test1521: fixed OOM handling
6852
6853 Daniel Stenberg (9 Jun 2017)
6854 - RELEASE-PROCEDURE: updated future release dates
6855
6856 - [Paul Harris brought this change]
6857
6858   gitignore: ignore all vim swap files
6859   
6860   Closes #1561
6861
6862 - lib1521: fix compiler warnings on the use of bad 'long' values
6863   
6864   Reported-by: Marcel Raad
6865   Bug: https://github.com/curl/curl/commit/cccac4fb2b20d6ed87da7978408c3ecacc464fe4#commitcomment-22453387
6866
6867 - setopt: check CURLOPT_ADDRESS_SCOPE option range
6868   
6869   ... and return error instead of triggering an assert() when being way
6870   out of range.
6871
6872 Jay Satiro (8 Jun 2017)
6873 - [TheAssassin brought this change]
6874
6875   cmake: Fix inconsistency regarding mbed TLS include directory
6876   
6877   Previously, one had to set MBEDTLS_INCLUDE_DIR to make CMake find the
6878   headers, but the system complained that mbed TLS wasn't found due to
6879   MBEDTLS_INCLUDE_DIRS (note the trailing s) was not set. This commit
6880   attempts to fix that.
6881   
6882   Closes https://github.com/curl/curl/pull/1541
6883
6884 Daniel Stenberg (8 Jun 2017)
6885 - [Ryuichi KAWAMATA brought this change]
6886
6887   examples/multi-uv.c: fix deprecated symbol
6888   
6889   Closes #1557
6890
6891 - asyn-ares: s/Curl_expire_latest/Curl_expire
6892
6893 - expire: remove Curl_expire_latest()
6894   
6895   With the introduction of expire IDs and the fact that existing timers
6896   can be removed now and thus never expire, the concept with adding a
6897   "latest" timer is not working anymore as it risks to not expire at all.
6898   
6899   So, to be certain the timers actually are in line and will expire, the
6900   plain Curl_expire() needs to be used. The _latest() function was added
6901   as a sort of shortcut in the past that's quite simply not necessary
6902   anymore.
6903   
6904   Follow-up to 31b39c40cf90
6905   
6906   Reported-by: Paul Harris
6907   
6908   Closes #1555
6909
6910 - [Chris Carlmar brought this change]
6911
6912   configure: fix link with librtmp when specifying path
6913   
6914   Bug: https://curl.haxx.se/mail/lib-2017-06/0017.html
6915
6916 - file: make speedcheck use current time for checks
6917   
6918   ... as it would previously just get the "now" timestamp before the
6919   transfer starts and then not update it again.
6920   
6921   Closes #1550
6922
6923 - metalink: remove unused printf() argument
6924
6925 - travis: let some builds *not* use --enable-debug
6926   
6927   typecheck-gcc and other things require optimized builds
6928   
6929   Closes #1544
6930
6931 - README.md: show the coverall coverage on github
6932
6933 - lib1521: fix compiler warnings
6934
6935 - test1521: make the code < 80 columns wide
6936
6937 - test1121: use stricter types to work with typcheck-gcc
6938
6939 - typecheck-gcc: allow CURLOPT_STDERR to be NULL too
6940
6941 - test1521: test *all* curl_easy_setopt options
6942   
6943   mk-lib1521.pl generates a test program (lib1521.c) that calls
6944   curl_easy_setopt() for every known option with a few typical values to
6945   make sure they work (ignoring the return codes).
6946   
6947   Some small changes were necessary to avoid asserts and NULL accesses
6948   when doing this.
6949   
6950   The perl script needs to be manually rerun when we add new options.
6951   
6952   Closes #1543
6953
6954 Dan Fandrich (5 Jun 2017)
6955 - test1538: added "verbose logs" keyword
6956   
6957   These error messages are not displayed with --disable-verbose
6958
6959 Daniel Stenberg (5 Jun 2017)
6960 - test1262: verify ftp download with -z for "if older than this"
6961
6962 Marcel Raad (5 Jun 2017)
6963 - curl_ntlm_core: use Curl_raw_toupper instead of toupper
6964   
6965   This was the only remaining use of toupper in the entire source code.
6966   
6967   Suggested-by: Daniel Stenberg
6968
6969 Daniel Stenberg (4 Jun 2017)
6970 - RELEASE-NOTES: synced with 65ba92650