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