_ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| Changelog Version 7.60.0 (15 May 2018) Daniel Stenberg (15 May 2018) - RELEASE-NOTES: 7.60.0 release - THANKS: added people from the curl 7.60.0 release - docs/libcurl/index.html: removed The HTML files are long gone from the dist, now remove the last HTML file pointing to those missing files. d - [steini2000 brought this change] http2: remove unused variable Closes #2570 - [steini2000 brought this change] http2: use easy handle of stream for logging - gcc: disable picky gcc-8 function pointer warnings in two places Reported-by: Rikard Falkeborn Bug: #2560 Closes #2569 - http2: use the correct function pointer typedef Fixes gcc-8 picky compiler warnings Reported-by: Rikard Falkeborn Bug: #2560 Closes #2568 - CODE_STYLE: mention return w/o parens, but sizeof with ... and remove the github markdown syntax so that it renders better on the web site. Also, don't use back-ticks inlined to allow the CSS to highlight source code better. - [Rikard Falkeborn brought this change] examples: Fix format specifiers Closes #2561 - [Rikard Falkeborn brought this change] tool: Fix format specifiers - [Rikard Falkeborn brought this change] ntlm: Fix format specifiers - [Rikard Falkeborn brought this change] tests: Fix format specifiers - [Rikard Falkeborn brought this change] lib: Fix format specifiers - contributors.sh: use "on github", not at - http2: getsock fix for uploads When there's an upload in progress, make sure to wait for the socket to become writable. Detected-by: steini2000 on github Bug: #2520 Closes #2567 - pingpong: fix response cache memcpy overflow Response data for a handle with a large buffer might be cached and then used with the "closure" handle when it has a smaller buffer and then the larger cache will be copied and overflow the new smaller heap based buffer. Reported-by: Dario Weisser CVE: CVE-2018-1000300 Bug: https://curl.haxx.se/docs/adv_2018-82c2.html - http: restore buffer pointer when bad response-line is parsed ... leaving the k->str could lead to buffer over-reads later on. CVE: CVE-2018-1000301 Assisted-by: Max Dymond Detected by OSS-Fuzz. Bug: https://curl.haxx.se/docs/adv_2018-b138.html Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105 Patrick Monnerat (13 May 2018) - cookies: do not take cookie name as a parameter RFC 6265 section 4.2.1 does not set restrictions on cookie names. This is a follow-up to commit 7f7fcd0. Also explicitly check proper syntax of cookie name/value pair. New test 1155 checks that cookie names are not reserved words. Reported-By: anshnd at github Fixes #2564 Closes #2566 Daniel Stenberg (12 May 2018) - smb: reject negative file sizes Assisted-by: Max Dymond Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245 - setup_transfer: deal with both sockets being -1 Detected by Coverity; CID 1435559. Follow-up to f8d608f38d00. It would index the array with -1 if neither index was a socket. - travis: add build using NSS Closes #2558 - [Sunny Purushe brought this change] openssl: change FILE ops to BIO ops To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES handling is causing problems. This fix changes the OpenSSL backend code to use BIO functions instead of FILE I/O functions to circumvent those problems. Closes #2512 - travis: add a build using WolfSSL Assisted-by: Dan Fandrich Closes #2528 - RELEASE-NOTES: typo - RELEASE-NOTES: synced - [Daniel Gustafsson brought this change] URLs: fix one more http url This file wasn't included in commit 4af40b3646d3b09 which updated all haxx.se http urls to https. The file was committed prior to that update, but may have been merged after it and hence didn't get updated. Closes #2550 - github/lock: auto-lock closed issues after 90 days of inactivity - vtls: fix missing commas follow-up to e66cca046cef - vtls: use unified "supports" bitfield member in backends ... instead of previous separate struct fields, to make it easier to extend and change individual backends without having to modify them all. closes #2547 - transfer: don't unset writesockfd on setup of multiplexed conns Curl_setup_transfer() can be called to setup a new individual transfer over a multiplexed connection so it shouldn't unset writesockfd. Bug: #2520 Closes #2549 - [Frank Gevaerts brought this change] configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h They are removed from the compiler flags. This ensures that make dependency tracking will force a rebuild whenever configure --enable-debug or --enable-curldebug changes. Closes #2548 - http: don't set the "rewind" flag when not uploading anything It triggers an assert. Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144 Closes #2546 - travis: add an mbedtls build Closes #2531 - configure: only check for CA bundle for file-using SSL backends When only building with SSL backends that don't use the CA bundle file (by default), skip the check. Fixes #2543 Fixes #2180 Closes #2545 - ssh-libssh.c: fix left shift compiler warning ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=] 'len' will never be that big anyway so I converted the run-time check to a regular assert. - [Stephan Mühlstrasser brought this change] URL: fix ASCII dependency in strcpy_url and strlen_url Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of the problem that strcpy_url() was modified unilaterally without also modifying strlen_url(). As a consequence strcpy_url() was again depending on ASCII encoding. This change fixes strlen_url() and strcpy_url() in parallel to use a common host-encoding independent criterion for deciding whether an URL character must be %-escaped. Closes #2535 - [Denis Ollier brought this change] docs: remove extraneous commas in man pages Closes #2544 - RELEASE-NOTES: synced - Revert "TODO: remove configure --disable-pthreads" This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3. --disable-pthreads can be used to disable pthreads and get the threaded resolver to use the windows threading when building with mingw. - vtls: don't define MD5_DIGEST_LENGTH for wolfssl ... as it defines it (too) - TODO: remove configure --disable-pthreads Jay Satiro (2 May 2018) - [David Garske brought this change] wolfssl: Fix non-blocking connect Closes https://github.com/curl/curl/pull/2542 Daniel Stenberg (30 Apr 2018) - CURLOPT_URL.3: add ENCODING section [ci skip] Feedback-by: Michael Kilburn - KNOWN_BUGS: Client cert with Issuer DN differs between backends Closes #1411 - KNOWN_BUGS: Passive transfer tries only one IP address Closes #1508 - KNOWN_BUGS: --upload-file . hang if delay in STDIN Closes #2051 - KNOWN_BUGS: Connection information when using TCP Fast Open Closes #1332 - travis: enable libssh2 on both macos and Linux It seems to not be detected by default anymore (which is a bug I believe) Closes #2541 - TODO: Support the clienthello extension Closes #2299 - TODO: CLOEXEC Closes #2252 - tests: provide 'manual' as a feature to optionally require ... and make test 1026 rely on that feature so that --disable-manual builds don't cause test failures. Reported-by: Max Dymond and Anders Roxell Fixes #2533 Closes #2540 - CURLINFO_PROTOCOL.3: mention the existing defined names Jay Satiro (27 Apr 2018) - [Daniel Gustafsson brought this change] cookies: remove unused macro Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused, so remove as it's not part of the published API. Closes https://github.com/curl/curl/pull/2537 Daniel Stenberg (27 Apr 2018) - [Daniel Gustafsson brought this change] checksrc: force indentation of lines after an else This extends the INDENTATION case to also handle 'else' statements and require proper indentation on the following line. Also fixes the offending cases found in the codebase. Closes #2532 - http2: fix null pointer dereference in http2_connisdead This function can get called on a connection that isn't setup enough to have the 'recv_underlying' function pointer initialized so it would try to call the NULL pointer. Reported-by: Dario Weisser Follow-up to db1b2c7fe9b093f8 (never shipped in a release) Closes #2536 - http2: get rid of another strstr() Follow-up to 1514c44655e12e: replace another strstr() call done on a buffer that might not be zero terminated - with a memchr() call, even if we know the substring will be found. Assisted-by: Max Dymond Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021 Closes #2534 - cyassl: adapt to libraries without TLS 1.0 support built-in WolfSSL doesn't enable it by default anymore - configure: provide --with-wolfssl as an alias for --with-cyassl - RELEASE-NOTES: synced - [Daniel Gustafsson brought this change] os400.c: fix ASSIGNWITHINCONDITION checksrc warnings All occurrences of assignment within conditional expression in os400sys.c rewritten into two steps: first assignment and then the check on the success of the assignment. Also adjust related incorrect brace positions to match project indentation style. This was spurred by seeing "if((inp = input_token))", but while in there all warnings were fixed. There should be no functional change from these changes. Closes #2525 - [Daniel Gustafsson brought this change] cookies: ensure that we have cookies before writing jar The jar should be written iff there are cookies, so ensure that we still have cookies after expiration to avoid creating an empty file. Closes #2529 - strcpy_url: only %-encode values >= 0x80 OSS-Fuzz detected https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000 Broke in dd7521bcc1b7 - mime: avoid NULL pointer dereference risk Coverity detected, CID 1435120 Closes #2527 - [Stephan Mühlstrasser brought this change] ctype: restore character classification for non-ASCII platforms With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic character classification macros and functions were introduced in curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on non-ASCII, e.g. EBCDIC platforms. This change restores the previous set of character classification macros when CURL_DOES_CONVERSIONS is defined. Closes #2494 - ftplistparser: keep state between invokes Fixes FTP wildcard parsing when done over a number of read buffers. Regression from f786d1f14 Reported-by: wncboy on github Fixes #2445 Closes #2526 - examples/http2-upload: expand buffer to avoid silly warning http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated writing between 2 and 11 bytes into a region of size between 8 and 17 - examples/sftpuploadresume: typecast fseek argument to long /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long int' from 'curl_off_t {aka long long int}' may alter its value - Revert "ftplistparser: keep state between invokes" This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934. Caused fuzzer problems on travis not seen when this was a PR! - Curl_memchr: zero length input can't match Avoids undefined behavior. Reported-by: Geeknik Labs - ftplistparser: keep state between invokes Fixes FTP wildcard parsing when doing over a number of read buffers. Regression from f786d1f14 Reported-by: wncboy on github Fixes #2445 Closes #2519 - ftplistparser: renamed some members and variables ... to make them better spell out what they're for. - RELEASE-NOTES: synced - [Christian Schmitz brought this change] curl_global_sslset: always provide available backends Closes #2499 - http2: convert an assert to run-time check Fuzzing has proven we can reach code in on_frame_recv with status_code not having been set, so let's detect that in run-time (instead of with assert) and error error accordingly. (This should no longer happen with the latest nghttp2) Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903 Closes #2514 - curl.1: clarify that options and URLs can be mixed Fixes #2515 Closes #2517 Jay Satiro (23 Apr 2018) - [Archangel_SDY brought this change] CURLOPT_SSLCERT.3: improve WinSSL-specific usage info Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780 Closes https://github.com/curl/curl/pull/2504 - [Archangel_SDY brought this change] schannel: fix build error on targets <= XP - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't support the latter. Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668 Closes https://github.com/curl/curl/pull/2504 Daniel Stenberg (23 Apr 2018) - Revert "ftplistparser: keep state between invokes" This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9. Unfortunately this fix introduces memory leaks I've not been able to fix in several days. Reverting this for now to get the leaks fixed. Jay Satiro (21 Apr 2018) - tool_help: clarify --max-time unit of time is seconds Before: -m, --max-time