5 \___|\___/|_| \_\_____|
9 Version 7.59.0 (13 Mar 2018)
11 Daniel Stenberg (13 Mar 2018)
14 Kamil Dudka (13 Mar 2018)
15 - tests/.../spnego.py: fix identifier typo
17 Detected by Coverity Analysis:
19 Error: IDENTIFIER_TYPO:
20 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
21 * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
22 * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
23 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
24 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
25 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
26 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
30 Daniel Stenberg (13 Mar 2018)
31 - CURLOPT_COOKIEFILE.3: "-" as file name means stdin
33 Reported-by: Aron Bergman
34 Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
38 - Revert "hostip: fix compiler warning: 'variable set but not used'"
40 This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
42 The assignment really needs to be there or we risk working with an
43 uninitialized pointer.
45 Michael Kaufmann (12 Mar 2018)
46 - limit-rate: fix compiler warning
50 Viktor Szakats (12 Mar 2018)
51 - checksrc.pl: add -i and -m options
53 To sync it with changes made for the libssh2 project.
54 Also cleanup some whitespace.
56 - curl-openssl.m4: fix spelling [ci skip]
58 - FAQ: fix a broken URL [ci skip]
60 Daniel Stenberg (12 Mar 2018)
61 - http2: mark the connection for close on GOAWAY
63 ... don't consider it an error!
65 Assisted-by: Jay Satiro
66 Reported-by: Łukasz Domeradzki
70 - credits: Viktor prefers without accent
72 - openldap: white space changes, fixed up the copyright years
74 - openldap: check ldap_get_attribute_ber() results for NULL before using
77 Reported-by: Dario Weisser
78 Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
80 - FTP: reject path components with control codes
82 Refuse to operate when given path components featuring byte values lower
85 Previously, inserting a %00 sequence early in the directory part when
86 using the 'singlecwd' ftp method could make curl write a zero byte
87 outside of the allocated buffer.
89 Test case 340 verifies.
92 Reported-by: Duy Phan Thanh
93 Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
95 - readwrite: make sure excess reads don't go beyond buffer end
98 Bug: https://curl.haxx.se/docs/adv_2018-b047.html
102 - BUGS: updated link to security process
104 - limit-rate: kick in even before "limit" data has been received
106 ... and make sure to avoid integer overflows with really large values.
112 - docs/SECURITY.md -> docs/SECURITY-PROCESS.md
114 - SECURITY.md: call it the security process
116 Michael Kaufmann (11 Mar 2018)
117 - Curl_range: fix FTP-only and FILE-only builds
121 - hostip: fix compiler warning: 'variable set but not used'
123 Daniel Stenberg (11 Mar 2018)
124 - HTTP: allow "header;" to replace an internal header with a blank one
126 Reported-by: Michael Kaufmann
130 - http2: verbose output new MAX_CONCURRENT_STREAMS values
132 ... as it is interesting for many users.
134 - SECURITY: distros' max embargo time is 14 days now
136 Patrick Monnerat (8 Mar 2018)
137 - curl tool: accept --compressed also if Brotli is enabled and zlib is not.
139 Daniel Stenberg (5 Mar 2018)
140 - THANKS + mailmap: remove duplicates, fixup full names
142 - [sergii.kavunenko brought this change]
144 WolfSSL: adding TLSv1.3
148 - RELEASE-NOTES/THANKS: synced with cc1d4c505
150 - [Richard Alcock brought this change]
152 winbuild: prefer documented zlib library names
154 Check for existence of import and static libraries with documented names
155 and use them if they do. Fallback to previous names.
158 https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
159 Windows, the names of the import library is "zdll.lib" and static
160 library is "zlib.lib".
164 Marcel Raad (4 Mar 2018)
165 - krb5: use nondeprecated functions
167 gss_seal/gss_unseal have been deprecated in favor of
168 gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
169 version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
170 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
171 "GSS_Unwrap() (formerly GSS_Unseal())".
173 Use the nondeprecated functions to avoid deprecation warnings.
175 [1] https://tools.ietf.org/html/rfc2078
176 [2] https://tools.ietf.org/html/rfc1964
178 Closes https://github.com/curl/curl/pull/2356
180 Daniel Stenberg (4 Mar 2018)
181 - curl.1: mention how to add numerical IP addresses in NO_PROXY
183 - CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
185 - NO_PROXY: fix for IPv6 numericals in the URL
187 Added test 1265 that verifies.
189 Reported-by: steelman on github
193 - build: get CFLAGS (including -werror) used for examples and tests
195 ... so that the CI and more detects compiler warnings/errors properly!
199 Marcel Raad (3 Mar 2018)
200 - curl_ctype: fix macro redefinition warnings
202 On MinGW and Cygwin, GCC and clang have been complaining about macro
203 redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
204 by undefining the macros before redefining them as suggested in
205 https://github.com/curl/curl/pull/2269.
207 Suggested-by: Daniel Stenberg
209 Dan Fandrich (2 Mar 2018)
210 - unit1307: proper cleanup on OOM to fix torture tests
212 Marcel Raad (28 Feb 2018)
213 - unit1309: fix warning on Windows x64
215 When targeting x64, MinGW-w64 complains about conversions between
216 32-bit long and 64-bit pointers. Fix this by reusing the
217 GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
218 from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
219 CURLX_INTEGER_TO_POINTER_CAST.
221 Closes https://github.com/curl/curl/pull/2341
223 - travis: update compiler versions
225 Update clang to version 3.9 and GCC to version 6.
227 Closes https://github.com/curl/curl/pull/2345
229 Daniel Stenberg (26 Feb 2018)
230 - docs/MANUAL: formfind.pl is not accessible on the site anymore
234 Jay Satiro (24 Feb 2018)
235 - curl-openssl.m4: Fix version check for OpenSSL 1.1.1
237 - Add OpenSSL 1.1.1 to the header/library version lists.
239 - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
240 which was added in that version.
242 Prior to this change an erroneous header/library mismatch was caused by
243 lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
245 Viktor Szakats (23 Feb 2018)
246 - lib655: silence compiler warning
248 Closes https://github.com/curl/curl/pull/2335
252 Detected using the `codespell` tool.
254 Also contains one URL protocol upgrade.
256 Closes https://github.com/curl/curl/pull/2334
258 Daniel Stenberg (24 Feb 2018)
259 - projects/README: remove reference to dead IDN link/package
261 Reported-by: Stefan Kanthak and Rod Widdowson
265 Jay Satiro (23 Feb 2018)
266 - [Rod Widdowson brought this change]
268 winbuild: Use macros for the names of some build utilities
270 - Add macros to the top of the makefile for rc and mt utilities so that
271 it is easier to change their locations.
273 Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
274 Reported-by: Stefan Kanthak
276 Closes https://github.com/curl/curl/issues/2329
278 Daniel Stenberg (23 Feb 2018)
279 - TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
281 - curl_share_setopt.3: connection cache is shared within multi handles
283 Jay Satiro (22 Feb 2018)
284 - [Rod Widdowson brought this change]
286 winbuild: Use CALL to run batch scripts
288 Co-authored-by: Stefan Kanthak
290 Closes https://github.com/curl/curl/issues/2330
291 Closes https://github.com/curl/curl/pull/2331
293 Patrick Monnerat (22 Feb 2018)
294 - os400: add curl_resolver_start_callback type to ILE/RPG binding
296 Daniel Stenberg (22 Feb 2018)
297 - form.d: rephrased somewhat, added two example command lines
299 Jay Satiro (21 Feb 2018)
300 - [Francisco Sedano brought this change]
302 url: Add option CURLOPT_RESOLVER_START_FUNCTION
304 - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
305 will be called every time before a new resolve request is started
306 (ie before a host is resolved) with a pointer to backend-specific
307 resolver data. Currently this is only useful for ares.
309 - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
310 pass to the resolver start callback.
312 Closes https://github.com/curl/curl/pull/2311
314 - lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
316 - In keeping with the naming of our other connect timeout options rename
317 CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
319 This change adds the _MS suffix since the option expects milliseconds.
320 This is more intuitive for our users since other connect timeout options
321 that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
322 CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
324 The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
326 Follow-up to 2427d94 which added the lib and tool option yesterday.
328 Ref: https://github.com/curl/curl/pull/2260
330 Patrick Monnerat (21 Feb 2018)
331 - sasl: prefer PLAIN mechanism over LOGIN
333 SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
334 PLAIN should be used instead if available.
336 Daniel Stenberg (21 Feb 2018)
337 - RELEASE-NOTES: synced with 2427d94c6
339 Jay Satiro (20 Feb 2018)
340 - [Anders Bakken brought this change]
342 url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
344 - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
345 eyeball timeout value.
347 - Add new optval macro CURL_HET_DEFAULT to represent the default happy
348 eyeballs timeout value (currently 200 ms).
350 - Add new tool option --happy-eyeballs-timeout-ms to expose
351 CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
352 other -timeout options in the tool expect seconds not milliseconds.
354 Closes https://github.com/curl/curl/pull/2260
356 - hostip: fix 'potentially uninitialized variable' warning
358 Follow-up to 50d1b33.
362 Daniel Stenberg (20 Feb 2018)
363 - TODO: warning if curl version is not in sync with libcurl version
365 Jay Satiro (20 Feb 2018)
366 - [Anders Bakken brought this change]
368 CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
370 This enables users to preresolve but still take advantage of happy
371 eyeballs and trying multiple addresses if some are not connecting.
373 Ref: https://github.com/curl/curl/pull/2260
375 Daniel Stenberg (20 Feb 2018)
376 - [Sergio Borghese brought this change]
378 examples/sftpuploadresume: resume upload via CURLOPT_APPEND
380 URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
382 - curl --version: show PSL if the run-time lib has it enabled
384 ... not of the #define was set at build-time!
386 - TODO: "Support in-memory certs/ca certs/keys"
388 removed SSLKEYLOGFILE support (fixed)
390 removed "consider SSL patches" (outdated)
394 - CURLOPT_HEADER.3: clarify problems with different data sizes
396 - test1556: verify >16KB headers to the header callback
398 - header callback: don't chop headers into smaller pieces
400 Reported-by: Guido Berhoerster
404 - test1154: verify that long HTTP headers get rejected
406 - http: fix the max header length detection logic
408 Previously, it would only check for max length if the existing alloc
409 buffer was to small to fit it, which often would make the header still
412 Reported-by: Guido Berhoerster
413 Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
417 - CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
419 Reported-by: Erik Johansson
420 Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
422 - CURLOPT_HEADERFUNCTION.3: mention folded headers
424 - TODO: 1.1 Option to refuse usernames in URLs
426 Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
428 - TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
430 - ssh: add two missing state names
432 The list of state names (used in debug builds) was out of sync in
433 relation to the list of states (used in all builds).
435 I now added an assert to make sure the sizes of the two lists match, to
436 aid in detecting this mistake better in the future.
438 Regression since c92d2e14cf, shipped in 7.58.0.
440 Reported-by: Somnath Kundu
445 - Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
447 This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
449 Reported-by: Jay Satiro
451 Jay Satiro (15 Feb 2018)
452 - non-ascii: fix implicit declaration warning
454 Follow-up to b46cfbc.
458 Daniel Stenberg (15 Feb 2018)
459 - travis: add build with iconv enabled
461 ... to verify it builds and works fine.
463 Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
467 - TODO: 18.18 retry on network is unreachable
471 - KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
475 Kamil Dudka (15 Feb 2018)
476 - nss: use PK11_CreateManagedGenericObject() if available
478 ... so that the memory allocated by applications using libcurl does not
479 grow per each TLS connection.
481 Bug: https://bugzilla.redhat.com/1510247
485 Daniel Stenberg (15 Feb 2018)
486 - [Björn Stenberg brought this change]
488 TODO fixed: Detect when called from within callbacks
492 - BINDINGS: fix curb link (and remove ruby-curl-multi)
494 Reported-by: Klaus Stein
496 - curl_gssapi: make sure this file too uses our *printf()
498 - libcurl-security.3: separate file:// section
500 ... just to make it more apparent. Even if it repeats
501 some pieces of information.
503 - libcurl-security.3: the http://192.168.0.1/my_router_config case
505 Mentioned-By: Rich Moore
507 - libcurl-security.3: mention the URL standards problems too
509 - libcurl-security.3: split out from libcurl-tutorial.3
511 To make more accessible.
513 Merged in some new language from "URLs are dangerous things" as discussed on
514 the mailing list a few days ago:
516 Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
518 - RELEASE-NOTES: synced with e551910f8
520 Patrick Monnerat (13 Feb 2018)
521 - tests: new tests for http raw mode
523 Test 319 checks proper raw mode data with non-chunked gzip
524 transfer-encoded server data.
525 Test 326 checks raw mode with chunked server data.
530 Kamil Dudka (12 Feb 2018)
531 - tlsauthtype.d: works only if libcurl is built with TLS-SRP support
533 Bug: https://bugzilla.redhat.com/1542256
537 Patrick Monnerat (12 Feb 2018)
538 - smtp: fix processing of initial dot in data
540 RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
541 should be taken into account when chasing the <CRLF>.<CRLF> end marker.
542 Thus a leading dot character in data is also subject to escaping.
544 Tests 911 and test server are adapted to this situation.
545 New tests 951 and 952 check proper handling of initial dot in data.
549 Daniel Stenberg (12 Feb 2018)
550 - sha256: avoid redefine
552 - [Douglas Mencken brought this change]
554 sha256: build with OpenSSL < 0.9.8 too
556 support for SHA-2 was introduced in OpenSSL 0.9.8
560 - [Bruno Grasselli brought this change]
568 Patrick Monnerat (12 Feb 2018)
569 - http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
572 Reported-By: Henry Roeland
574 Daniel Stenberg (9 Feb 2018)
575 - get_posix_time: only check for overflows if they can happen!
577 Michael Kaufmann (9 Feb 2018)
578 - schannel: fix "no previous prototype" compiler warning
580 Jay Satiro (9 Feb 2018)
581 - [Mohammad AlSaleh brought this change]
583 content_encoding: Add "none" alias to "identity"
585 Some servers return a "content-encoding" header with a non-standard
588 Add "none" as an alias to "identity" as a work-around, to avoid
589 unrecognised content encoding type errors.
591 Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
593 Closes https://github.com/curl/curl/pull/2298
595 Steve Holme (8 Feb 2018)
596 - build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
598 - build-openssl.bat: Fixed incorrect move if destination build folder exists
600 Michael Kaufmann (8 Feb 2018)
601 - schannel: fix compiler warnings
605 Steve Holme (7 Feb 2018)
606 - curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
608 Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
609 Added the necessary include file to curl_addrinfo.c.
611 Note: The SDK (which is considered beta) has to be installed, VS 2017
612 project file has to be re-targeted for Windows 10.0.17061 and #define
613 enabled in config-win32.h.
615 Patrick Monnerat (7 Feb 2018)
616 - fnmatch: optimize processing of consecutive *s and ?s pattern characters
618 Reported-By: Daniel Stenberg
622 Steve Holme (6 Feb 2018)
623 - build-openssl.bat/build-wolfssl.bat: Build platform is optional
625 Whilst the compiler parameter is mandatory, platform is optional as it
626 is automatically calculated by the :configure section.
628 This partially reverts commit 6d62d2c55d.
630 Daniel Stenberg (6 Feb 2018)
631 - [Patrick Schlangen brought this change]
633 openssl: Don't add verify locations when verifypeer==0
635 When peer verification is disabled, calling
636 SSL_CTX_load_verify_locations is not necessary. Only call it when
637 verification is enabled to save resources and increase performance.
641 Steve Holme (5 Feb 2018)
642 - build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
644 ...and not just the Community Edition.
646 - build-openssl.bat: Extend VC15 support to include Enterprise and Professional
648 ...and not just the Community Edition.
650 Michael Kaufmann (5 Feb 2018)
651 - time-cond: fix reading the file modification time on Windows
653 On Windows, stat() may adjust the unix file time by a daylight saving time
654 offset. Avoid this by calling GetFileTime() instead.
659 Daniel Stenberg (5 Feb 2018)
660 - formdata: use the mime-content type function
662 Reduce code duplication by making Curl_mime_contenttype available and
663 used by the formdata function. This also makes the formdata function
664 recognize a set of more file extensions by default.
666 PR #2280 brought this to my attention.
670 - getdate: return -1 for out of range
672 ...as that's how the function is documented to work.
674 Reported-by: Michael Kaufmann
675 Bug found in an autobuild with 32 bit time_t
679 - [Ben Greear brought this change]
681 build: fix termios issue on android cross-compile
683 Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
684 Signed-off-by: Ben Greear <greearb@candelatech.com>
686 - time_t-fixes: remove typecasts to 'long' for info.filetime
690 Reported-by: Michael Kaufmann
694 - curl_setup: move the precautionary define of SIZEOF_TIME_T
696 ... up to before it may be used for the TIME_T_MAX/MIN logic.
698 Reported-by: Michael Kaufmann
700 - parsedate: s/#if/#ifdef
702 Reported-by: Michael Kaufmann
703 Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
705 Patrick Monnerat (31 Jan 2018)
706 - fnmatch: pattern syntax can no longer fail
708 Whenever an expected pattern syntax rule cannot be matched, the
709 character starting the rule loses its special meaning and the parsing
711 - backslash at the end of pattern string matches itself.
712 - Error in [:keyword:] results in set containing :\[dekorwy.
714 Unit test 1307 updated for this new situation.
718 - fnmatch: accept an alphanum to be followed by a non-alphanum in char set
720 Also be more tolerant about set pattern syntax.
721 Update unit test 1307 accordingly.
723 Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
725 - fnmatch: do not match the empty string with a character set
727 Jay Satiro (30 Jan 2018)
728 - build: fix windows build methods for curl_ctype.c
730 - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
731 curlx files since they are required by both src and lib.
733 Follow-up to 4272a0b which added curl_ctype.
735 Daniel Stenberg (30 Jan 2018)
736 - progress-bar.d: update to match implementation
738 ... since commit 993dd5651a6
740 Reported-by: Martin Dreher
741 Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
745 - http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
747 ... instead of doing it unconditionally in debug builds. It cluttered up
748 the output a little too much.
750 - [Max Dymond brought this change]
752 file: Check the return code from Curl_range and bail out on error
754 - [Max Dymond brought this change]
756 Curl_range: add check to ensure "from <= to"
758 - [Max Dymond brought this change]
760 Curl_range: commonize FTP and FILE range handling
764 - RELEASE-NOTES: synced with 811beab9f
766 - curlver: next release will be 7.59.0
768 - [Michał Janiszewski brought this change]
770 curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
774 - time: support > year 2038 time stamps for system with 32bit long
776 ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
782 - curl_easy_reset: clear digest auth state
784 Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
785 Reported-by: Ruurd Beerstra
789 - [Adam Marcionek brought this change]
791 winbuild: make linker generate proper PDB
793 Link.exe requires /DEBUG to properly generate a full pdb file on release
798 - curl: add --proxy-pinnedpubkey
800 To verify a proxy's public key. For when using HTTPS proxies.
805 - configure: set PATH_SEPARATOR to colon for PATH w/o separator
807 The logic tries to figure out what the path separator in the $PATH
808 variable is, but if there's only one directory in the $PATH it
809 fails. This change make configure *guess* on colon instead of erroring
810 out, simply because that is probably the more common character.
812 PATH_SEPARATOR can always be set by the user to override the guessing.
814 (tricky bug to reproduce, as in my case for example the configure script
815 requires binaries in more than one directory so passing in a PATH with a
818 Reported-by: Earnestly on github
822 - curl_ctype: private is*() type macros and functions
824 ... since the libc provided one are locale dependent in a way we don't
825 want. Also, the "native" isalnum() (for example) works differently on
826 different platforms which caused test 1307 failures on macos only.
830 Marcel Raad (29 Jan 2018)
831 - build: open VC15 projects with VS 2017
833 Previously, they were opened with Visual Studio 2015 by default, which
836 Daniel Stenberg (29 Jan 2018)
837 - RELEASE-NOTES: synced with 094647fca
839 - TODO: UTF-8 filenames in Content-Disposition
843 - KNOWN_BUGS: DICT responses show the underlying protocol
847 Jay Satiro (27 Jan 2018)
848 - [Alessandro Ghedini brought this change]
850 docs: fix typos in man pages
852 Closes https://github.com/curl/curl/pull/2266
854 Patrick Monnerat (26 Jan 2018)
855 - lib555: drop text conversion and encode data as ascii codes
857 If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
858 giving a result that is different from what is expected.
859 This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
862 Bug: https://github.com/curl/curl/pull/1872
864 Daniel Stenberg (26 Jan 2018)
865 - lib517: make variable static to avoid compiler warning
867 ... with clang on macos
869 Patrick Monnerat (26 Jan 2018)
870 - lib544: sync ascii code data with textual data
872 Data mismatch caused test 545 to fail when character encoding
873 conversion is enabled.
875 Bug: https://github.com/curl/curl/pull/1872
877 Daniel Stenberg (25 Jan 2018)
878 - [Travis Burtrum brought this change]
880 GSKit: restore pinnedpubkey functionality
882 inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
886 - [Dair Grant brought this change]
888 darwinssl: Don't import client certificates into Keychain on macOS
892 - configure: fix the check for unsigned time_t
894 Assign the time_t variable negative value and then check if it is
895 greater than zero, which will evaluate true for unsigned time_t but
896 false for signed time_t.
898 - parsedate: fix date parsing for systems with 32 bit long
900 Make curl_getdate() handle dates before 1970 as well (returning negative
903 Make test 517 test dates for 64 bit time_t.
905 This fixes bug (3) mentioned in #2238
909 - [McDonough, Tim brought this change]
911 openssl: fix pinned public key build error in FIPS mode
913 Here is a version that should work with all versions of openssl 0.9.7
917 https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
918 https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
920 At the very bottom of the 1.1.0 documentation there is a history section
921 that states, " stack allocated EVP_MD_CTXs are no longer supported."
923 If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
924 simple mapping can be used as described here:
925 https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
929 - [Travis Burtrum brought this change]
931 SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
933 - [Travis Burtrum brought this change]
935 SChannel/WinSSL: Implement public key pinning
939 - bump: towards 7.58.1
941 - cookies: remove verbose "cookie size:" output
943 It was once used for some debugging/verifying logic but should never have
946 - TODO: hardcode the "localhost" addresses
948 - TODO: CURL_REFUSE_CLEARTEXT
950 An idea that popped up in discussions on twitter.
952 - progress-bar: don't use stderr explicitly, use bar->out
954 Reported-By: Gisle Vanem
955 Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
958 - [Gisle Vanem brought this change]
962 djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
963 But djgpp seems the only choice for MSDOS anyway.
965 PellesC do have a 'F_OK' defined in it's <unistd.h>.
967 Update year in Copyright.
969 - [Gisle Vanem brought this change]
973 Version 7.58.0 (23 Jan 2018)
975 Daniel Stenberg (23 Jan 2018)
978 - [Gisle Vanem brought this change]
980 progress-bar: get screen width on windows
982 - test1454: --connect-to with IPv6 address w/o IPv6 support!
984 - CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
986 Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
987 Reported-by: John Hascall
991 - docs: fix man page syntax to make test 1140 OK again
993 - http: prevent custom Authorization headers in redirects
995 ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
996 curl already handles Authorization headers created internally.
998 Note: this changes behavior slightly, for the sake of reducing mistakes.
1000 Added test 317 and 318 to verify.
1002 Reported-by: Craig de Stigter
1003 Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
1005 - curl: progress bar refresh, get width using ioctl()
1007 Get screen width from the environment variable COLUMNS first, if set. If
1008 not, use ioctl(). If nether works, assume 79.
1012 The "refresh" is for the -# output when no total transfer size is
1013 known. It will now only use a single updated line even for this case:
1015 The "-=O=-" ship moves when data is transferred. The four flying
1016 "hashes" move (on a sine wave) on each refresh, independent of data.
1018 - RELEASE-NOTES: synced with bb0ffcc36
1020 - libcurl-env.3: first take
1022 - TODO: two possible name resolver improvements
1024 - [Kartik Mahajan brought this change]
1026 http2: don't close connection when single transfer is stopped
1031 - test558: fix for multissl builds
1033 vtls.c:multissl_init() might do a curl_free() call so strip that out to
1034 make this work with more builds. We just want to verify that
1035 memorytracking works so skipping one line is no harm.
1037 - examples/url2file.c: add missing curl_global_cleanup() call
1039 Reported-by: XhstormR on github
1042 - [Michael Gmelin brought this change]
1044 SSH: Fix state machine for ssh-agent authentication
1046 In case an identity didn't match[0], the state machine would fail in
1047 state SSH_AUTH_AGENT instead of progressing to the next identity in
1048 ssh-agent. As a result, ssh-agent authentication only worked if the
1049 identity required happened to be the first added to ssh-agent.
1051 This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
1052 stated that the "else" statement was required to prevent getting stuck
1053 in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
1054 interface I couldn't see how this could happen or reproduce it and I
1055 also couldn't find a more detailed description of the problem which
1056 would explain a test case to reproduce the problem this was supposed to
1059 [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
1063 - openssl: fix potential memory leak in SSLKEYLOGFILE logic
1065 Coverity CID 1427646.
1067 - openssl: fix the libressl build again
1069 Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
1070 late OpenSSL version...
1075 Reported-by: jungle-boogie on github
1077 - unit1307: test many wildcards too
1079 - curl_fnmatch: only allow 5 '*' sections in a single pattern
1081 ... to avoid excessive recursive calls. The number 5 is totally
1082 arbitrary and could be modified if someone has a good motivation.
1084 - ftp-wildcard: fix matching an empty string with "*[^a]"
1086 .... and avoid advancing the pointer to trigger an out of buffer read.
1088 Detected by OSS-fuzz
1089 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
1090 Assisted-by: Max Dymond
1092 - SMB: fix numeric constant suffix and variable types
1094 1. don't use "ULL" suffix since unsupported in older MSVC
1095 2. use curl_off_t instead of custom long long ifdefs
1096 3. make get_posix_time() not do unaligned data access
1100 Reported-by: Chester Liu
1102 - [rouzier brought this change]
1104 CURLOPT_TCP_NODELAY.3: fix typo
1108 - smtp/pop3/imap_get_message: decrease the data length too...
1110 Follow-up commit to 615edc1f73 which was incomplete.
1112 Assisted-by: Max Dymond
1113 Detected by OSS-fuzz
1114 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
1116 - openssl: enable SSLKEYLOGFILE support by default
1121 Patrick Monnerat (14 Jan 2018)
1122 - mime: clone mime tree upon easy handle duplication.
1124 A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
1125 strongly bound to the handle: there is a pointer to the easy handle in
1126 each item of the mime tree and following the parent pointer list
1127 of mime items ends in a dummy part stored within the handle.
1129 Because of this binding, a mime tree cannot be shared between different
1130 easy handles, thus it needs to be cloned upon easy handle duplication.
1132 There is no way for the caller to get the duplicated mime tree
1133 handle: it is then set to be automatically destroyed upon freeing the
1136 New test 654 checks proper mime structure duplication/release.
1138 Add a warning note in curl_mime_data_cb() documentation about sharing
1139 user data between duplicated handles.
1143 - docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
1145 Daniel Stenberg (13 Jan 2018)
1146 - test395: HTTP with overflow Content-Length value
1148 - test394: verify abort of rubbish in Content-Length: value
1150 - test393: verify --max-filesize with excessive Content-Length
1152 - HTTP: bail out on negative Content-Length: values
1154 ... and make the max filesize check trigger if the value is too big.
1158 Reported-by: Brad Spencer
1162 Marcel Raad (13 Jan 2018)
1163 - [Dan Johnson brought this change]
1165 configure.ac: append extra linker flags instead of prepending them.
1167 Link order should list libraries after the libraries that use them,
1168 so when we're guessing that we might also need to add -ldl in order
1169 to use -lssl, we should add -ldl after -lssl.
1171 Closes https://github.com/curl/curl/pull/2234
1173 Daniel Stenberg (13 Jan 2018)
1174 - RELEASE-NOTES: synced with 6fa10c8fa
1176 Jay Satiro (13 Jan 2018)
1177 - setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
1179 Broken since f121575 (precedes 7.56.1).
1181 Bug: https://github.com/curl/curl/issues/2225
1182 Reported-by: cmfrolick@users.noreply.github.com
1184 Closes https://github.com/curl/curl/pull/2227
1186 Patrick Monnerat (13 Jan 2018)
1187 - setopt: reintroduce non-static Curl_vsetopt() for OS400 support
1189 This also upgrades ILE/RPG bindings with latest setopt options.
1191 Reported-By: jonrumsey on github
1195 Jay Satiro (11 Jan 2018)
1196 - [Zhouyihai Ding brought this change]
1198 http2: fix incorrect trailer buffer size
1200 Prior to this change the stored byte count of each trailer was
1201 miscalculated and 1 less than required. It appears any trailer
1202 after the first that was passed to Curl_client_write would be truncated
1203 or corrupted as well as the size. Potentially the size of some
1204 subsequent trailer could be erroneously extracted from the contents of
1205 that trailer, and since that size is used by client write an
1206 out-of-bounds read could occur and cause a crash or be otherwise
1207 processed by client write.
1209 The bug appears to have been born in 0761a51 (precedes 7.49.0).
1211 Closes https://github.com/curl/curl/pull/2231
1213 - [Basuke Suzuki brought this change]
1215 easy: fix connection ownership in curl_easy_pause
1217 Before calling Curl_client_chop_write(), change the owner of connection
1218 to the current Curl_easy handle. This will fix the issue #2217.
1220 Fixes https://github.com/curl/curl/issues/2217
1221 Closes https://github.com/curl/curl/pull/2221
1223 Daniel Stenberg (9 Jan 2018)
1224 - [Dimitrios Apostolou brought this change]
1226 system.h: Additionally check __LONG_MAX__ for defining curl_off_t
1228 __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
1233 - COPYING: it's 2018!
1235 - progress: calculate transfer speed on milliseconds if possible
1237 to increase accuracy for quick transfers
1242 Jay Satiro (7 Jan 2018)
1243 - scripts: allow all perl scripts to be run directly
1245 - Enable execute permission (chmod +x)
1247 - Change interpreter to /usr/bin/env perl
1249 Closes https://github.com/curl/curl/pull/2222
1251 - mail-rcpt.d: fix short-text description
1253 - build: remove HAVE_LIMITS_H check
1255 .. because limits.h presence isn't optional, it's required by C89.
1257 Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
1259 Closes https://github.com/curl/curl/pull/2215
1261 - openssl: fix memory leak of SSLKEYLOGFILE filename
1263 - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
1268 - Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
1270 This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
1272 SIZEOF_LONG should not be checked in system.h since that macro is only
1273 defined when building libcurl.
1275 Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
1276 Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
1278 Michael Kaufmann (30 Dec 2017)
1279 - test1554: improve the error handling
1281 - test1554: add global initialization and cleanup
1283 Daniel Stenberg (29 Dec 2017)
1284 - curl_version_info.3: call the argument 'age'
1286 Reported-by: Pete Lomax
1287 Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
1289 Patrick Monnerat (27 Dec 2017)
1290 - [Mikalai Ananenka brought this change]
1292 brotli: data at the end of content can be lost
1294 Decoding loop implementation did not concern the case when all
1295 received data is consumed by Brotli decoder and the size of decoded
1296 data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
1297 For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
1298 can result in the loss of data at the end of content.
1302 Jay Satiro (26 Dec 2017)
1303 - examples/cacertinmem: ignore cert-already-exists error
1305 - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
1306 since it's possible the cert may have already been loaded by libcurl.
1308 - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
1309 Instead have it direct the reader to this cacertinmem.c example.
1311 - Fix the CA certificate to use the right CA for example.com, Digicert.
1313 Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
1314 Reported-by: Thomas van Hesteren
1316 Closes https://github.com/curl/curl/pull/2182
1318 - [Gisle Vanem brought this change]
1320 tool_getparam: Support size modifiers for --max-filesize
1322 - Move the size modifier detection code from limit-rate to its own
1323 function so that it can also be used with max-filesize.
1325 Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
1327 For example --max-filesize 1G
1329 Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
1331 Closes https://github.com/curl/curl/pull/2179
1333 Steve Holme (22 Dec 2017)
1334 - build: Fixed incorrect script termination from commit ad1dc10e61
1336 - Makefile.vc: Added our standard copyright header
1338 - winbuild: Added support for VC15
1340 - build: Added Visual Studio 2017 project files
1342 - build-wolfssl.bat: Added support for VC15
1344 - build-openssl.bat: Added support for VC15
1346 Jay Satiro (22 Dec 2017)
1347 - [Dimitrios Apostolou brought this change]
1349 curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
1351 Closes https://github.com/curl/curl/pull/2186
1353 - [Mattias Fornander brought this change]
1355 examples/rtsp: fix error handling macros
1357 Closes https://github.com/curl/curl/pull/2185
1359 Patrick Monnerat (20 Dec 2017)
1360 - curl_easy_reset: release mime-related data.
1362 Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
1363 functions dealing with UserDefined structure contents.
1364 This avoids memory leakages on curl-generated part mime headers.
1365 New test 2073 checks this using the cli tool --next option: it
1366 triggers a valgrind error if bug is present.
1368 Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
1369 Reported-by: Martin Galvan
1371 - content_encoding: rework zlib_inflate
1373 - When zlib version is < 1.2.0.4, process gzip trailer before considering
1374 extra data as an error.
1375 - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
1376 and minimize corrupt data output.
1377 - Do not try to restart deflate decompression in raw mode if output has
1378 started or if the leading data is not available anymore.
1379 - New test 232 checks inflating raw-deflated content.
1383 - brotli: allow compiling with version 0.6.0.
1385 Some error codes were not yet defined in brotli 0.6.0: do not issue code
1386 for them in this case.
1388 Daniel Stenberg (13 Dec 2017)
1389 - CURLOPT_READFUNCTION.3: refer to argument with correct name
1395 - rand: add a clang-analyzer work-around
1397 scan-build would warn on a potential access of an uninitialized
1398 buffer. I deem it a false positive and had to add this somewhat ugly
1399 work-around to silence it.
1401 - krb5: fix a potential access of uninitialized memory
1403 A scan-build warning.
1405 - conncache: fix a return code [regression]
1407 This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
1410 - curl: support >256 bytes warning messsages
1414 Michael Kaufmann (12 Dec 2017)
1415 - libssh: fix a syntax error in configure.ac
1417 Follow-up to c92d2e1
1421 Daniel Stenberg (12 Dec 2017)
1422 - examples/smtp-mail.c: use separate defines for options and mail
1424 ... to make it clearer that the options want address-only, while the
1425 headers in an email can also have the real name.
1427 Assisted-by: Sean MacLennan
1429 - THANKS: added missing names
1431 ... as I reran the contrithanks script after the mailmap name fixups.
1433 - mailmap: added/clarified several names
1435 - setopt: less *or equal* than INT_MAX/1000 should be fine
1437 ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
1438 CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
1440 Reported-by: Dominik Hölzl
1441 Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
1445 - [Dmitry Kostjuchenko brought this change]
1447 vtls: replaced getenv() with curl_getenv()
1449 Fixed undefined symbol of getenv() which does not exist when compiling
1450 for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
1451 curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
1456 - RELEASE-NOTES: synced with 3b9ea70ee
1458 - TODO: Expose tried IP addresses that failed
1460 Suggested-by: Rainer Canavan
1464 - curl.1: mention http:// and https:// as valid proxy prefixes
1466 - curl.1: documented two missing valid exit codes
1468 - CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
1470 - Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
1472 This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
1474 It was actually added rather recently in 8e8afa82cbb629 due to a crash
1475 that would otherwise happen in the RTSP code. As I don't think we've
1476 fixed that behavior yet, we better keep this work-around until we have
1479 Michael Kaufmann (10 Dec 2017)
1480 - tests: mark data files as non-executable in git
1482 - tests: update .gitignore for libtests
1484 Daniel Stenberg (10 Dec 2017)
1485 - multi_done: prune DNS cache
1487 Prune the DNS cache immediately after the dns entry is unlocked in
1488 multi_done. Timed out entries will then get discarded in a more orderly
1493 Reported-by: Oleg Pudeyev
1498 - mailmap: fixup two old git Author "aliases"
1500 Jay Satiro (10 Dec 2017)
1501 - openssl: Disable file buffering for Win32 SSLKEYLOGFILE
1503 Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
1504 like it does for other platforms. However, the Windows CRT does not
1505 actually support line buffering (_IOLBF) and will use full buffering
1506 (_IOFBF) instead. We can't use full buffering because multiple processes
1507 may be writing to the file and that could lead to corruption, and since
1508 full buffering is the only buffering available this commit disables
1509 buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
1511 Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
1513 Daniel Stenberg (10 Dec 2017)
1514 - RESOLVE: output verbose text when trying to set a duplicate name
1516 ... to help users understand what is or isn't done!
1518 - CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
1520 - [John DeHelian brought this change]
1522 sftp: allow quoted commands to use relative paths
1526 Jay Satiro (8 Dec 2017)
1527 - [Richard Alcock brought this change]
1529 CURLOPT_PRIVATE.3: fix grammar
1531 - Change "never does nothing" double-negative to "never does anything".
1533 Closes https://github.com/curl/curl/pull/2168
1535 Daniel Stenberg (8 Dec 2017)
1536 - curl: remove __EMX__ #ifdefs
1538 These are OS/2-specific things added to the code in the year 2000. They
1539 were always ugly. If there's any user left, they still don't need it
1544 Jay Satiro (8 Dec 2017)
1545 - openssl: improve data-pending check for https proxy
1547 - Allow proxy_ssl to be checked for pending data even when connssl does
1548 not yet have an SSL handle.
1550 This change is for posterity. Currently there doesn't seem to be a code
1551 path that will cause a pending data check when proxyssl could have
1552 pending data and the connssl handle doesn't yet exist [1].
1554 [1]: Recall that an https proxy connection starts out in connssl but if
1555 the destination is also https then the proxy SSL backend data is moved
1556 from connssl to proxyssl, which means connssl handle is temporarily
1557 empty until an SSL handle for the destination can be created.
1559 Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
1561 Closes https://github.com/curl/curl/pull/1916
1563 Daniel Stenberg (8 Dec 2017)
1564 - curl: don't set CURLOPT_INTERLEAVEDATA
1566 That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
1567 and that option isn't set or used by the curl tool!
1569 Updates the 9 tests that verify --libcurl
1573 - curl.h: remove incorrect comment about ERRORBUFFER
1575 ... error messages are _not_ sent to stderr if this is not set.
1577 - [Michael Felt brought this change]
1579 configure: add AX_CODE_COVERAGE only if using gcc
1584 - curl: limit -# update frequency for unknown total size
1586 Make it use a max 10Hz update frequency for this case as well. Return
1587 early if the "point" hasn't moved since last invoke.
1589 Reported-by: Elliot Saba
1594 - BINDINGS: another PostgreSQL client
1596 ...the former link is dead.
1598 Reported-by: Frank Gevaerts
1600 - [Zachary Seguin brought this change]
1602 CONNECT: keep close connection flag in http_connect_state struct
1607 - [Per Malmberg brought this change]
1609 include: get netinet/in.h before linux/tcp.h
1611 ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
1616 - openldap: fix checksrc nits
1618 - [Stepan Broz brought this change]
1620 openldap: add commented out debug possibilities
1622 ... to aid debugging openldap library using its built-in debug messages.
1626 - examples: move threaded-shared-conn.c to the "complicated" ones
1628 ... due it relying on pthreads to link.
1630 - RELEASE-NOTES: synced with b261c44e8
1632 ... and bump next release version to 7.58.0
1634 - [Jan Ehrhardt brought this change]
1636 URL: tolerate backslash after drive letter for FILE:
1638 ... as in "file://c:\some\path\curl.out"
1640 Reviewed-by: Matthew Kerwin
1643 - [Randall S. Becker brought this change]
1645 tests: added netinet/in6.h includes in test servers
1647 - [Randall S. Becker brought this change]
1649 configure: check for netinet/in6.h
1651 Needed by HPE NonStop NSE and NSX systems
1656 - curl-config: add --ssl-backends
1658 Lists all SSL backends that were enabled at build-time.
1660 Suggested-by: Oleg Pudeyev
1663 - conncache: only allow multiplexing within same multi handle
1665 Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
1666 only get additional transfers added to them if the existing connection
1667 is held by the same multi or easy handle. libcurl does not support doing
1668 HTTP/2 streams in different threads using a shared connection.
1672 - threaded-shared-conn.c: fixed typo in commenta
1674 - threaded-shared-conn.c: new example
1676 - conncache: fix several lock issues
1678 If the lock is released before the dealings with the bundle is over, it may
1679 have changed by another thread in the mean time.
1685 - libssh: remove dead code in sftp_qoute
1687 ... by removing a superfluous NULL pointer check that also confuses
1693 - sasl_getmesssage: make sure we have a long enough string to pass
1695 For pop3/imap/smtp, added test 891 to somewhat verify the pop3
1698 For this, I enhanced the pingpong test server to be able to send back
1699 responses with LF-only instead of always using CRLF.
1703 - libssh2: remove dead code from SSH_SFTP_QUOTE
1705 Figured out while reviewing code in the libssh backend. The pointer was
1706 checked for NULL after having been dereferenced, so we know it would
1707 always equal true or it would've crashed.
1709 Pointed-out-by: Nikos Mavrogiannopoulos
1714 - ssh-libssh.c: please checksrc
1716 Nikos Mavrogiannopoulos (4 Dec 2017)
1717 - libssh: fixed dereference in statvfs access
1719 The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
1724 Daniel Stenberg (4 Dec 2017)
1725 - [Guitared brought this change]
1727 RESOURCES: update spec names
1731 Nikos Mavrogiannopoulos (3 Dec 2017)
1732 - libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
1734 The previous code was incorrectly following the libssh2 error detection
1735 for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
1739 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1741 - libssh: no need to call sftp_get_error as ssh_get_error is sufficient
1745 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1747 Daniel Stenberg (2 Dec 2017)
1748 - libssh: fix minor static code analyzer nits
1750 - remove superfluous NULL check which otherwise tricks the static code
1751 analyzers to assume NULL pointer dereferences.
1753 - fix fallthrough in switch()
1757 - openssl: pkcs12 is supported by boringssl
1759 Removes another #ifdef for BoringSSL
1761 Pointed-out-by: David Benjamin
1765 - [Jay Satiro brought this change]
1767 travis: use pip2 instead of pip
1769 .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
1771 0.01s$ pip install --user cpp-coveralls
1772 /Users/travis/.travis/job_stages: line 57: pip: command not found
1774 Ref: https://github.com/travis-ci/travis-ci/issues/8829
1776 Closes https://github.com/curl/curl/pull/2133
1778 - [Nikos Mavrogiannopoulos brought this change]
1780 lib582: do not verify host for SFTP
1782 This SFTP test fails with libssh back-end due to failure to verify
1783 the peer. Disable peer verification in the test as there seems to
1784 be the intention of the test.
1786 Note that the libssh back-end automatically verifies the peer's
1787 host using the default known_hosts file.
1789 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1791 - [Nikos Mavrogiannopoulos brought this change]
1793 libssh: added SFTP support
1795 The SFTP back-end supports asynchronous reading only, limited
1796 to 32-bit file length. Writing is synchronous with no other
1799 This also brings keyboard-interactive authentication.
1801 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1803 - [Nikos Mavrogiannopoulos brought this change]
1805 symbols-in-versions: added new symbols with 7.56.3 version
1807 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1809 - [Nikos Mavrogiannopoulos brought this change]
1811 .travis.yml: added build --with-libssh
1813 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1815 - [Nikos Mavrogiannopoulos brought this change]
1817 libssh2: return CURLE_UPLOAD_FAILED on failure to upload
1819 This brings its in sync with the error code returned by the
1822 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1824 - [Nikos Mavrogiannopoulos brought this change]
1826 libssh2: send the correct CURLE error code on scp file not found
1828 That also updates tests to expect the right error code
1830 libssh2 back-end returns CURLE_SSH error if the remote file
1831 is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
1832 which is sent by the libssh backend.
1834 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1836 - [Nikos Mavrogiannopoulos brought this change]
1838 Added support for libssh SSH SCP back-end
1840 libssh is an alternative library to libssh2.
1841 https://www.libssh.org/
1843 That patch set also introduces support for ECDSA
1844 ed25519 keys, as well as gssapi authentication.
1846 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1848 - RELEASE-NOTES: synced with af8cc7a69
1850 - curlver: towards 7.57.1
1852 - [W. Mark Kubacki brought this change]
1854 lib: don't export all symbols, just everything curl_*
1856 Absent any 'symbol map' or script to limit what gets exported, static
1857 linking of libraries previously resulted in a libcurl with curl's and
1858 those other symbols being (re-)exported.
1860 This did not happen if 'versioned symbols' were enabled (which is not
1861 the default) because then a version script is employed.
1863 This limits exports to everything starting in 'curl_*'., which is
1864 what "libcurl.vers" exports.
1866 This avoids strange side-effects such as with mixing methods
1867 from system libraries and those erroneously offered by libcurl.
1871 - [Johannes Schindelin brought this change]
1873 SSL: Avoid magic allocation of SSL backend specific data
1875 Originally, my idea was to allocate the two structures (or more
1876 precisely, the connectdata structure and the four SSL backend-specific
1877 strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
1878 that they all could be free()d together.
1880 However, getting the alignment right is tricky. Too tricky.
1882 So let's just bite the bullet and allocate the SSL backend-specific
1885 As a consequence, we now have to be very careful to release the memory
1886 allocated for the SSL backend-specific data whenever we release any
1889 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1893 - examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
1895 Reported-by: Dima Tisnek
1897 - travis: add boringssl build
1899 Uses a separate build without --enable-debug and no valgrind.
1901 The debug option causes far too many warnings in boringssl's headers
1902 (C++ comments, trailing commas etc). Valgrind triggers some false
1903 positive errors in thread-local data used by boringssl.
1907 Version 7.57.0 (29 Nov 2017)
1909 Daniel Stenberg (29 Nov 2017)
1910 - RELEASE-NOTES: curl 7.57.0
1912 - THANKS: added contributors from 7.57.0 release
1914 - openssl: fix boringssl build again
1916 commit d3ab7c5a21e broke the boringssl build since it doesn't have
1917 RSA_flags(), so we disable that code block for boringssl builds.
1919 Reported-by: W. Mark Kubacki
1922 - curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
1924 - libcurl-share.3: the connection cache is shareable now
1926 - global_init: ignore CURL_GLOBAL_SSL's absense
1928 This bit is no longer used. It is not clear what it meant for users to
1929 "init the TLS" in a world with different TLS backends and since the
1930 introduction of multissl, libcurl didn't properly work if inited without
1933 Not a single user responded to the call for users of it:
1934 https://curl.haxx.se/mail/lib-2017-11/0072.html
1936 Reported-by: Evgeny Grin
1937 Assisted-by: Jay Satiro
1943 - ntlm: avoid integer overflow for malloc size
1945 Reported-by: Alex Nichols
1946 Assisted-by: Kamil Dudka and Max Dymond
1950 Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
1952 - wildcardmatch: fix heap buffer overflow in setcharset
1954 The code would previous read beyond the end of the pattern string if the
1955 match pattern ends with an open bracket when the default pattern
1956 matching function is used.
1958 Detected by OSS-Fuzz:
1959 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
1963 Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
1965 - [Jay Satiro brought this change]
1967 url: fix alignment of ssl_backend_data struct
1969 - Align the array of ssl_backend_data on a max 32 byte boundary.
1971 8 is likely to be ok but I went with 32 for posterity should one of
1972 the ssl_backend_data structs change to contain a larger sized variable
1975 Prior to this change (since dev 70f1db3, release 7.56) the connectdata
1976 structure was undersized by 4 bytes in 32-bit builds with ssl enabled
1977 because long long * was mistakenly used for alignment instead of
1978 long long, with the intention being an 8 byte boundary. Also long long
1979 may not be an available type.
1981 The undersized connectdata could lead to oob read/write past the end in
1982 what was expected to be the last 4 bytes of the connection's secondary
1983 socket https proxy ssl_backend_data struct (the secondary socket in a
1984 connection is used by ftp, others?).
1986 Closes https://github.com/curl/curl/issues/2093
1990 Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
1992 - ssh: remove check for a NULL pointer (!)
1994 With this check present, scan-build warns that we might dereference this
1995 point in other places where it isn't first checked for NULL. Thus, if it
1996 *can* be NULL we have a problem on a few places. However, this pointer
1997 should not be possible to be NULL here so I remove the check and thus
1998 also three different scan-build warnings.
2002 - [Matthew Kerwin brought this change]
2004 test: add test for bad UNC/SMB path in file: URL
2006 - [Matthew Kerwin brought this change]
2008 test: add tests to ensure basic file: URLs
2010 - [Matthew Kerwin brought this change]
2012 URL: update "file:" URL handling
2014 * LOTS of comment updates
2015 * explicit error for SMB shares (e.g. "file:////share/path/file")
2016 * more strict handling of authority (i.e. "//localhost/")
2017 * now accepts dodgy old "C:|" drive letters
2018 * more precise handling of drive letters in and out of Windows
2019 (especially recognising both "file:c:/" and "file:/c:/")
2023 - metalink: fix memory-leak and NULL pointer dereference
2025 Reported by scan-build
2029 - [Alessandro Ghedini brought this change]
2031 connect: add support for new TCP Fast Open API on Linux
2033 The new API added in Linux 4.11 only requires setting a socket option
2034 before connecting, without the whole sento() machinery.
2036 Notably, this makes it possible to use TFO with SSL connections on Linux
2037 as well, without the need to mess around with OpenSSL (or whatever other
2038 SSL library) internals.
2042 - make: fix "make distclean"
2047 - RELEASE-NOTES: synced with 31f18d272
2049 Jay Satiro (23 Nov 2017)
2050 - connect: improve the bind error message
2052 eg consider a non-existent interface eth8, curl --interface eth8
2054 Before: curl: (45) Could not resolve host: eth8
2055 After: curl: (45) Couldn't bind to 'eth8'
2057 Bug: https://github.com/curl/curl/issues/2104
2058 Reported-by: Alfonso Martone
2060 Daniel Stenberg (23 Nov 2017)
2061 - examples/rtsp: clear RANGE again after use
2064 Reported-by: youngchopin on github
2066 - [Michael Kaufmann brought this change]
2068 test1264: verify URL with space in host name being rejected
2070 - url: reject ASCII control characters and space in host names
2072 Host names like "127.0.0.1 moo" would otherwise be accepted by some
2073 getaddrinfo() implementations.
2075 Updated test 1034 and 1035 accordingly.
2080 - Curl_open: fix OOM return error correctly
2084 - http2: fix "Value stored to 'end' is never read" scan-build error
2086 - http2: fix "Value stored to 'hdbuf' is never read" scan-build error
2088 - openssl: fix "Value stored to 'rc' is never read" scan-build error
2090 - mime: fix "Value stored to 'sz' is never read" scan-build error
2092 - Curl_llist_remove: fix potential NULL pointer deref
2094 Fixes a scan-build warning.
2096 - ntlm: remove unnecessary NULL-check to please scan-build
2098 - BUGS: spellchecked
2100 Jay Satiro (18 Nov 2017)
2101 - [fmmedeiros brought this change]
2103 examples/curlx: Fix code style
2105 - Add braces around multi-line if statement.
2107 Closes https://github.com/curl/curl/pull/2096
2109 Daniel Stenberg (17 Nov 2017)
2110 - resolve: allow IP address within [] brackets
2112 ... so that IPv6 addresses can be passed like they can for connect-to
2113 and how they're used in URLs.
2115 Added test 1324 to verify
2116 Reported-by: Alex Malinovich
2121 - [Pavol Markovic brought this change]
2123 macOS: Fix missing connectx function with Xcode version older than 9.0
2125 The previous fix https://github.com/curl/curl/pull/1788 worked just for
2126 Xcode 9. This commit extends the fix to older Xcode versions effectively
2127 by not using connectx function.
2129 Fixes https://github.com/curl/curl/issues/1330
2130 Fixes https://github.com/curl/curl/issues/2080
2131 Closes https://github.com/curl/curl/pull/1336
2134 - [Dirk Feytons brought this change]
2136 openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
2141 - TODO: ignore private IP addresses in PASV response
2145 - RELEASE-NOTES: synced with ae7369b6d
2147 Michael Kaufmann (14 Nov 2017)
2148 - URL: return error on malformed URLs with junk after IPv6 bracket
2150 Follow-up to aadb7c7. Verified by new test 1263.
2154 Daniel Stenberg (14 Nov 2017)
2155 - INTERNALS: we may use libidn2 now, not libidn
2157 Patrick Monnerat (13 Nov 2017)
2158 - zlib/brotli: only include header files in modules needing them
2160 There is a conflict on symbol 'free_func' between openssl/crypto.h and
2161 zlib.h on AIX. This is an attempt to resolve it.
2163 Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
2164 Reported-By: Michael Felt
2166 Daniel Stenberg (13 Nov 2017)
2167 - SMB: fix uninitialized local variable
2169 Reported-by: Brian Carpenter
2171 - [Orgad Shaneh brought this change]
2173 connect.c: remove executable bit on file
2177 - [hsiao yi brought this change]
2179 README.md: fixed layout
2183 - setopt: split out curl_easy_setopt() to its own file
2185 ... to make url.c smaller.
2189 Jay Satiro (10 Nov 2017)
2190 - [John Starks brought this change]
2192 cmake: Add missing setmode check
2194 Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
2195 curl will corrupt binary files when writing them to stdout on Windows.
2197 Closes https://github.com/curl/curl/pull/2067
2199 Daniel Stenberg (10 Nov 2017)
2200 - curl_share_setopt: va_end was not called if conncache errors
2202 CID 984459, detected by Coverity
2204 Sergei Nikulov (10 Nov 2017)
2205 - [John Starks brought this change]
2207 cmake: Correctly include curl.rc in Windows builds (#2064)
2209 Update CMakeLists.txt to add curl.rc to the correct list.
2211 Daniel Stenberg (9 Nov 2017)
2212 - RELEASE-NOTES: synced with 32828cc4f
2214 - [Luca Boccassi brought this change]
2216 --interface: add support for Linux VRF
2218 The --interface command (CURLOPT_INTERFACE option) already uses
2219 SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
2220 address first, which fails in case the user passes a VRF.
2222 Try to use the socket option immediately and parse it as a fallback
2223 instead. Update the documentation to mention this feature, and that it
2224 requires the binary to be ran by root or with CAP_NET_RAW capabilities
2229 - curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
2233 - examples: add shared-connection-cache
2235 - test1554: verify connection cache sharing
2237 - share: add support for sharing the connection cache
2239 - imap: deal with commands case insensitively
2241 As documented in RFC 3501 section 9:
2242 https://tools.ietf.org/html/rfc3501#section-9
2246 - connect: store IPv6 connection status after valid connection
2248 ... previously it would store it already in the happy eyeballs stage
2249 which could lead to the IPv6 bit being set for an IPv4 connection,
2250 leading to curl not wanting to do EPSV=>PASV for FTP transfers.
2254 - curl_multi_fdset.3: emphasize curl_multi_timeout
2256 ... even when there's no socket to wait for, the timeout can still be
2259 Jay Satiro (9 Nov 2017)
2260 - content_encoding: fix inflate_stream for no bytes available
2262 - Don't call zlib's inflate() when avail_in stream bytes is 0.
2264 This is a follow up to the parent commit 19e66e5. Prior to that change
2265 libcurl's inflate_stream could call zlib's inflate even when no bytes
2266 were available, causing inflate to return Z_BUF_ERROR, and then
2267 inflate_stream would treat that as a hard error and return
2268 CURLE_BAD_CONTENT_ENCODING.
2270 According to the zlib FAQ, Z_BUF_ERROR is not fatal.
2272 This bug would happen randomly since packet sizes are arbitrary. A test
2273 of 10,000 transfers had 55 fail (ie 0.55%).
2275 Ref: https://zlib.net/zlib_faq.html#faq05
2277 Closes https://github.com/curl/curl/pull/2060
2279 Patrick Monnerat (7 Nov 2017)
2280 - content_encoding: do not write 0 length data
2282 Daniel Stenberg (6 Nov 2017)
2283 - fnmatch: remove dead code
2285 There was a duplicate check for backslashes in the setcharset()
2288 Coverity CID 1420611
2290 - url: remove unncessary NULL-check
2292 Since 'conn' won't be NULL in there and we also access the pointer in
2293 there without the check.
2295 Coverity CID 1420610
2297 Viktor Szakats (6 Nov 2017)
2298 - src/Makefile.m32: fix typo in brotli lib customization
2300 Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
2302 - Makefile.m32: allow to customize brotli libs
2304 It adds the ability to link against static brotli libs.
2306 Also fix brotli include path.
2308 Patrick Monnerat (5 Nov 2017)
2309 - travis: add a job with brotli enabled
2311 - [Viktor Szakats brought this change]
2313 Makefile.m32: add brotli support
2315 - HTTP: implement Brotli content encoding
2317 This uses the brotli external library (https://github.com/google/brotli).
2318 Brotli becomes a feature: additional curl_version_info() bit and
2319 structure fields are provided for it and CURLVERSION_NOW bumped.
2321 Tests 314 and 315 check Brotli content unencoding with correct and
2324 Some tests are updated to accomodate with the now configuration dependent
2325 parameters of the Accept-Encoding header.
2327 - HTTP: support multiple Content-Encodings
2329 This is implemented as an output streaming stack of unencoders, the last
2330 calling the client write procedure.
2332 New test 230 checks this feature.
2334 Bug: https://github.com/curl/curl/pull/2002
2335 Reported-By: Daniel Bankhead
2337 Jay Satiro (4 Nov 2017)
2338 - url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
2340 Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
2341 check on this option is incorrect; we have to accept any value.
2343 Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
2344 erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
2346 Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
2348 Daniel Stenberg (4 Nov 2017)
2349 - ntlm: avoid malloc(0) for zero length passwords
2351 It triggers an assert() when built with memdebug since malloc(0) may
2352 return NULL *or* a valid pointer.
2354 Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
2356 Assisted-by: Max Dymond
2359 - RELEASE-NOTES: synced with ee8016b3d
2361 - curl: speed up handling of many URLs
2363 By properly keeping track of the last entry in the list of URLs/uploads
2364 to handle, curl now avoids many meaningless traverses of the list which
2365 speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
2368 Added test 1291, to verify that it doesn't take ages - but we don't have
2369 any detection of "too slow" command in the test suite.
2371 Reported-by: arainchik on github
2375 - curl: pass through [] in URLs instead of calling globbing error
2377 Assisted-by: Per Lundberg
2382 - CURLOPT_INFILESIZE: accept -1
2384 Regression since f121575
2386 Reported-by: Petr Voytsik
2389 Jay Satiro (2 Nov 2017)
2390 - url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
2392 Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
2393 erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
2395 Dan Fandrich (1 Nov 2017)
2396 - http2: Fixed OOM handling in upgrade request
2398 This caused the torture tests on test 1800 to fail.
2400 - tests: Fixed torture tests on tests 556 and 650
2402 Test cleanup after OOM wasn't being consistently performed.
2404 Daniel Stenberg (1 Nov 2017)
2405 - CURLOPT_MAXREDIRS: allow -1 as a value
2407 ... which is valid according to documentation. Regression since
2410 Verified now in test 501.
2412 Reported-by: cbartl on github
2416 - include: remove conncache.h inclusion from where its not needed
2418 Jay Satiro (1 Nov 2017)
2419 - url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
2421 .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
2423 Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
2424 erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
2426 Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
2427 Reported-by: Andrew Lambert
2429 Daniel Stenberg (31 Oct 2017)
2430 - cookie: avoid NULL dereference
2432 ... when expiring old cookies.
2434 Reported-by: Pavel Gushchin
2438 Marcel Raad (30 Oct 2017)
2439 - memdebug: use send/recv signature for curl_dosend/curl_dorecv
2441 This avoids build errors and warnings caused by implicit casts.
2443 Closes https://github.com/curl/curl/pull/2031
2445 Daniel Stenberg (30 Oct 2017)
2446 - [Juro Bystricky brought this change]
2448 mkhelp.pl: support reproducible build
2450 Do not generate line with the current date, such as:
2452 * Generation time: Tue Oct-24 18:01:41 2017
2454 This will improve reproducibility. The generated string is only
2455 part of a comment, so there should be no adverse consequences.
2457 Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
2461 Dan Fandrich (30 Oct 2017)
2462 - runtests.pl: Fixed typo in message
2464 Daniel Stenberg (30 Oct 2017)
2465 - curlx: the timeval functions are no longer provided as curlx_*
2467 Pointed-out-by: Dmitri Tikhonov
2470 - select: update comments
2472 s/curlx_tvnow/Curl_now
2474 - INTERNALS: remove curlx_tv* functions no longer provided
2476 - [Dmitri Tikhonov brought this change]
2478 timeval: use mach time on MacOS
2480 If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
2484 monnerat (29 Oct 2017)
2485 - [Patrick Monnerat brought this change]
2487 cli tool: improve ";type=" handling in -F option arguments
2489 - [Patrick Monnerat brought this change]
2491 cli tool: in -F option arg, comma is a delimiter for files only
2493 Also upgrade test 1133 to cover this case and clarify man page about
2496 Bug: https://github.com/curl/curl/issues/2022
2497 Reported-By: omau on github
2499 Daniel Stenberg (29 Oct 2017)
2500 - timeleft: made two more users of Curl_timeleft use timediff_t
2502 Jakub Zakrzewski (28 Oct 2017)
2503 - cmake: Export libcurl and curl targets to use by other cmake projects
2505 The config files define curl and libcurl targets as imported targets
2506 CURL::curl and CURL::libcurl. For backward compatibility with CMake-
2507 provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
2512 Daniel Stenberg (28 Oct 2017)
2513 - RELEASE-NOTES: synced with f20cbac97
2515 - [Florin Petriuc brought this change]
2517 auth: Added test cases for RFC7616
2519 Updated docs to include support for RFC7616
2521 Signed-off-by: Florin <petriuc.florin@gmail.com>
2525 - [Florin Petriuc brought this change]
2527 auth: add support for RFC7616 - HTTP Digest access authentication
2529 Signed-off-by: Florin <petriuc.florin@gmail.com>
2531 - [Daniel Bankhead brought this change]
2533 TODO: support multiple Content-Encodings
2539 Removed done stuff. Removed entries no longer considered for the near
2542 - [Magicansk brought this change]
2544 ROADMAP.md: spelling fixes
2548 - Curl_timeleft: change return type to timediff_t
2550 returning 'time_t' is problematic when that type is unsigned and we
2551 return values less than zero to signal "already expired", used in
2552 several places in the code.
2556 - appveyor: add a win32 build
2558 - setopt: fix CURLOPT_SSH_AUTH_TYPES option read
2560 Regression since f121575c0b5f
2562 Reported-by: Rob Cotrone
2564 Marcel Raad (27 Oct 2017)
2565 - resolvers: only include anything if needed
2567 This avoids warnings about unused stuff.
2569 Closes https://github.com/curl/curl/pull/2023
2571 Daniel Stenberg (27 Oct 2017)
2572 - HELP-US: rename the subtitle too since the label is changed
2574 "PR-welcome" was the former name.
2576 - curl_setup.h: oops, shorten the too long line
2578 - [Martin Storsjo brought this change]
2580 curl_setup: Improve detection of CURL_WINDOWS_APP
2582 If WINAPI_FAMILY is defined, it should be safe to try to include
2583 winapifamily.h to check what the define evaluates to.
2585 This should fix detection of CURL_WINDOWS_APP if building with
2586 _WIN32_WINNT set to 0x0600.
2590 Jay Satiro (26 Oct 2017)
2591 - transfer: Fix chunked-encoding upload bug
2593 - When uploading via chunked-encoding don't compare file size to bytes
2594 sent to determine whether the upload has finished.
2596 Chunked-encoding adds its own overhead which why the bytes sent is not
2597 equal to the file size. Prior to this change if a file was uploaded in
2598 chunked-encoding and its size was known it was possible that the upload
2599 could end prematurely without sending the final few chunks. That would
2600 result in a server hang waiting for the remaining data, likely followed
2603 The scope of this bug is limited to some arbitrary file sizes which have
2604 not been determined. One size that triggers the bug is 475020.
2606 Bug: https://github.com/curl/curl/issues/2001
2607 Reported-by: moohoorama@users.noreply.github.com
2609 Closes https://github.com/curl/curl/pull/2010
2611 Daniel Stenberg (26 Oct 2017)
2612 - timeval: make timediff_t also work on 32bit windows
2614 ... by using curl_off_t for the typedef if time_t is larger than 4
2617 Reported-by: Gisle Vanem
2618 Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
2619 mmitcomment-25205058
2622 - curl_fnmatch: return error on illegal wildcard pattern
2624 ... instead of doing an infinite loop!
2626 Added test 1162 to verify.
2628 Reported-by: Max Dymond
2632 - [Max Dymond brought this change]
2634 wildcards: don't use with non-supported protocols
2636 Fixes timeouts in the fuzzing tests for non-FTP protocols.
2640 - [Max Dymond brought this change]
2642 multi: allow table handle sizes to be overridden
2644 Allow users to specify their own hash define for
2645 CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
2649 - time: rename Curl_tvnow to Curl_now
2651 ... since the 'tv' stood for timeval and this function does not return a
2652 timeval struct anymore.
2654 Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
2655 clean up the descriptive comments.
2659 - ftplistparser: follow-up cleanup to remove PL_ERROR()
2661 - [Max Dymond brought this change]
2663 ftplistparser: free off temporary memory always
2665 When using the FTP list parser, ensure that the memory that's
2666 allocated is always freed.
2668 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
2671 - timediff: return timediff_t from the time diff functions
2673 ... to cater for systems with unsigned time_t variables.
2675 - Renamed the functions to curlx_timediff and Curl_timediff_us.
2677 - Added overflow protection for both of them in either direction for
2678 both 32 bit and 64 bit time_ts
2680 - Reprefixed the curlx_time functions to use Curl_*
2682 Reported-by: Peter Piekarski
2686 - [Paul Howarth brought this change]
2688 libtest: Add required test libraries for lib1552 and lib1553
2690 They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
2692 This fixes build failures on Fedora 13.
2696 - [Alessandro Ghedini brought this change]
2698 libcurl-tutorial.3: fix typo
2702 Alessandro Ghedini (23 Oct 2017)
2703 - curl_mime_filedata.3: fix typos
2705 Daniel Stenberg (23 Oct 2017)
2706 - RELEASE-NOTES: clean slate towards 7.57.0
2708 - [Max Dymond brought this change]
2710 travis: exit if any steps fail
2712 We don't expect any steps to fail in travis. Exit the script if they do.
2716 Version 7.56.1 (23 Oct 2017)
2718 Daniel Stenberg (23 Oct 2017)
2719 - RELEASE-NOTES: 7.56.1
2721 - THANKS: update at 7.56.1 release time
2723 - [Jon DeVree brought this change]
2725 mk-ca-bundle: Remove URL for aurora
2727 Aurora is no longer used by Mozilla
2728 https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
2730 - [Jon DeVree brought this change]
2732 mk-ca-bundle: Fix URL for NSS
2734 The 'tip' is the most recent branch committed to, this should be
2735 'default' like the URLs for the browser are.
2739 - imap: if a FETCH response has no size, don't call write callback
2743 Reported-by: Brian Carpenter and 0xd34db347
2744 Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
2746 - ftp: reject illegal IP/port in PASV 227 response
2748 ... by using range checks. Among other things, this avoids an undefined
2749 behavior for a left shift that could happen on negative or very large
2754 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
2756 Patrick Monnerat (20 Oct 2017)
2757 - test653: check reuse of easy handle after mime data change
2761 - mime: do not reuse previously computed multipart size
2763 The contents might have changed: size must be recomputed.
2765 Reported-by: moteus on github
2768 - test308: disable if MultiSSL feature enabled
2770 Even if OpenSSL is enabled, it might not be the default backend when
2771 multi-ssl is enabled, causing the test to fail.
2773 - runtests: support MultiSSL client feature
2775 - vtls: change struct Curl_ssl `close' field name to `close_one'.
2777 On OS/400, `close' is an ASCII system macro that corrupts the code if
2778 not used in a context not targetting the close() system API.
2780 - os400: add missing symbols in config file.
2782 Also adjust makefile to renamed files and warn about installation dirs mix-up.
2784 - test652: curl_mime_data + base64 encoder with large contents
2786 - mime: limit bas64-encoded lines length to 76 characters
2788 Daniel Stenberg (16 Oct 2017)
2789 - RELEASE-NOTES: synced with f121575c0
2791 - setopt: range check most long options
2793 ... filter early instead of risking "funny values" having to be dealt
2796 - setopt: avoid integer overflows when setting millsecond values
2798 ... that are multiplied by 1000 when stored.
2800 For 32 bit long systems, the max value accepted (2147483 seconds) is >
2801 596 hours which is unlikely to ever be set by a legitimate application -
2802 and previously it didn't work either, it just caused undefined behavior.
2804 Also updated the man pages for these timeout options to mention the
2809 Viktor Szakats (15 Oct 2017)
2810 - makefile.m32: allow to override gcc, ar and ranlib
2812 Allow to ovverride certain build tools, making it possible to
2813 use LLVM/Clang to build curl. The default behavior is unchanged.
2814 To build with clang (as offered by MSYS2), these settings can
2819 CURL_RANLIB=llvm-ranlib
2821 Closes https://github.com/curl/curl/pull/1993
2823 - ldap: silence clang warning
2825 Use memset() to initialize a structure to avoid LLVM/Clang warning:
2826 ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
2828 Closes https://github.com/curl/curl/pull/1992
2830 Daniel Stenberg (14 Oct 2017)
2831 - runtests: use valgrind for torture as well
2833 NOTE: it makes them terribly slow. I recommend only using valgrind for
2834 specific torture tests or using lots of patience.
2836 - memdebug: trace send, recv and socket
2838 ... to allow them to be included in torture tests too.
2842 - configure: remove the C++ compiler check
2844 ... we used it only for the fuzzer, which we now have in a separate git
2849 Patrick Monnerat (13 Oct 2017)
2850 - mime: do not call failf() if easy handle is NULL.
2852 Daniel Stenberg (13 Oct 2017)
2853 - test651: curl_formadd with huge COPYCONTENTS
2855 - mime: fix the content reader to handle >16K data properly
2857 Reported-by: Jeroen Ooms
2860 Patrick Monnerat (12 Oct 2017)
2861 - mime: keep "text/plain" content type if user-specified.
2863 Include test cases in 554, 587, 650.
2865 Fixes https://github.com/curl/curl/issues/1986
2867 - cli tool: use file2memory() to buffer stdin in -F option.
2869 Closes PR https://github.com/curl/curl/pull/1985
2871 - cli tool: reimplement stdin buffering in -F option.
2873 If stdin is not a regular file, its content is memory-buffered to enable
2874 a possible data "rewind".
2875 In all cases, stdin data size is determined before real use to avoid
2876 having an unknown part's size.
2878 --libcurl generated code is left as an unbuffered stdin fread/fseek callback
2879 part with unknown data size.
2881 Buffering is not supported in deprecated curl_formadd() API.
2883 Daniel Stenberg (12 Oct 2017)
2884 - winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
2886 - HELP-US: the label "PR-welcome" is now renamed to "help wanted"
2888 following the new github "standard"
2890 - RELEASE-NOTES: synced with 5505df7d2
2892 Jay Satiro (11 Oct 2017)
2893 - [Artak Galoyan brought this change]
2895 url: Update current connection SSL verify params in setopt
2897 Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
2898 connection updates the current connection's (i.e.'connectdata'
2899 structure) appropriate ssl_config (and ssl_proxy_config) structures
2900 variables, making these options effective for ongoing connection.
2902 This functionality was available before and was broken by the
2904 "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
2905 CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
2907 Bug: https://github.com/curl/curl/issues/1941
2909 Closes https://github.com/curl/curl/pull/1951
2911 Daniel Stenberg (11 Oct 2017)
2912 - [David Benjamin brought this change]
2914 openssl: don't use old BORINGSSL_YYYYMM macros
2916 Those were temporary things we'd add and remove for our own convenience
2917 long ago. The last few stayed around for too long as an oversight but
2918 have since been removed. These days we have a running
2919 BORINGSSL_API_VERSION counter which is bumped when we find it
2920 convenient, but 2015-11-19 was quite some time ago, so just check
2921 OPENSSL_IS_BORINGSSL.
2925 - test950; verify SMTP with custom request
2927 - ftpserver: support case insensitive commands
2929 - smtp_done: free data before returning (on send failure)
2931 ... as otherwise it could leak that memory.
2933 Detected by OSS-fuzz:
2934 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
2936 Assisted-by: Max Dymond
2939 - FTP: URL decode path for dir listing in nocwd mode
2941 Reported-by: Zenju on github
2943 Test 244 added to verify
2947 - test298: verify --ftp-method nowcwd with URL encoded path
2951 - CURLOPT_XFERINFODATA.3: fix duplicate see also
2953 - CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
2955 - FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
2957 - openssl: enable PKCS12 support for !BoringSSL
2959 Enable PKCS12 for all non-boringssl builds without relying on configure
2962 Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
2963 Reported-by: Christian Schmitz
2966 - [Kristiyan Tsaklev brought this change]
2968 curl: don't pass semicolons when parsing Content-Disposition
2970 Test 1422 updated to verify.
2974 Patrick Monnerat (9 Oct 2017)
2975 - mime: properly unbind mime structure in curl_mime_free().
2977 This allows freeing a mime structure bound to the easy handle before
2978 curl_easy_cleanup().
2982 Daniel Stenberg (9 Oct 2017)
2983 - RTSP: avoid integer overflow on funny RTSP response
2985 ... like a very large non-existing RTSP version number.
2987 Added test 577 to verify.
2989 Detected by OSS-fuzz.
2992 Patrick Monnerat (8 Oct 2017)
2993 - ftpserver: properly reset $ftptargetdir.
2995 - test643: verify curl_mime_subparts() rejects cyclic additions.
2997 - mime: refuse to add subparts to one of their own descendants.
2999 Reported-by: Alexey Melnichuk
3002 - mime: avoid resetting a part's encoder when part's contents change.
3004 - mime: improve unbinding top multipart from easy handle.
3006 Also avoid dangling pointers in referencing parts.
3008 Daniel Stenberg (8 Oct 2017)
3009 - RELEASE-NOTES: synced with a4c1c75da30af1
3011 - curlver.h: next expected release is 7.57.0
3013 Patrick Monnerat (8 Oct 2017)
3014 - mime: be tolerant about setting twice the same header list in a part.
3016 - docs: clarify form/mime usage of non-regular data files.
3018 Daniel Stenberg (8 Oct 2017)
3019 - Revert "multi_done: wait for name resolve to finish if still ongoing"
3021 This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
3023 Caused memory leaks in the fuzzer, needs to be done differently.
3025 Disable test 1553 for now too, as it causes memory leaks without this
3028 - remove_handle: call multi_done() first, then clear dns cache pointer
3032 - multi_done: wait for name resolve to finish if still ongoing
3034 ... as we must clean up memory.
3036 - pingpong: return error when trying to send without connection
3038 When imap_done() got called before a connection is setup, it would try
3039 to "finish up" and dereffed a NULL pointer.
3041 Test case 1553 managed to reproduce. I had to actually use a host name
3042 to try to resolve to slow it down, as using the normal local server IP
3043 will make libcurl get a connection in the first curl_multi_perform()
3044 loop and then the bug doesn't trigger.
3047 Assisted-by: Max Dymond
3049 Dan Fandrich (6 Oct 2017)
3050 - tests: added flaky keyword to tests 587 and 644
3052 These are around 5% flaky in my Linux x86 autobuilds.
3054 Marcel Raad (6 Oct 2017)
3055 - vtls: fix warnings with --disable-crypto-auth
3057 When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
3060 Daniel Stenberg (6 Oct 2017)
3061 - multi_cleanup: call DONE on handles that never got that
3063 ... fixes a memory leak with at least IMAP when remove_handle is never
3064 called and the transfer is abruptly just abandoned early.
3066 Test 1552 added to verify
3068 Detected by OSS-fuzz
3069 Assisted-by: Max Dymond
3072 - [Benbuck Nason brought this change]
3074 strtoofft: Remove extraneous null check
3076 Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
3081 - openssl: fix build without HAVE_OPAQUE_EVP_PKEY
3083 Reported-by: Javier Sixto
3087 Viktor Szakats (6 Oct 2017)
3088 - lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
3090 The source code is now prepared to handle the case when both
3091 Win32 Crypto and OpenSSL/NSS crypto backends are enabled
3092 at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
3093 whenever the targeted Windows version supports it. Since this
3094 matches the minimum Windows version supported by curl
3095 (Windows 2000), enable it unconditionally for the Win32 platform.
3097 This in turn enables SMB (and SMBS) protocol support whenever
3098 Win32 Crypto is available, regardless of what other crypto backends
3101 Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
3103 Closes https://github.com/curl/curl/pull/1943
3105 Daniel Stenberg (5 Oct 2017)
3106 - build: fix --disable-crypto-auth
3108 Reported-by: Wyatt O'Day
3112 Jay Satiro (5 Oct 2017)
3113 - [Nick Zitzmann brought this change]
3115 darwinssl: add support for TLSv1.3
3117 Closes https://github.com/curl/curl/pull/1794
3119 Daniel Stenberg (4 Oct 2017)
3120 - [Felix Kaiser brought this change]
3122 docs: fix typo in curl_mime_data_cb man page
3126 Viktor Szakats (4 Oct 2017)
3127 - lib/Makefile.m32: allow customizing dll suffixes
3129 - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
3130 libcurl dll name. Useful to add `-x64` to 64-bit builds so that
3131 it can live in the same directory as the 32-bit one. By default
3134 - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
3135 generated import library (implib) for libcurl .dll. It defaults
3136 to `dll`, and it's useful to modify that to `.dll` to have the
3137 standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
3139 Closes https://github.com/curl/curl/pull/1942
3141 Daniel Stenberg (4 Oct 2017)
3142 - [Max Dymond brought this change]
3144 fuzzer: move to using external curl-fuzzer
3146 Use the external curl-fuzzer repository for fuzzing.
3150 - failf: skip the sprintf() if there are no consumers
3154 - ftp: UBsan fixup 'pointer index expression overflowed'
3158 - RELEASE-PROCEDURE: update the release schedule
3160 Version 7.56.0 (4 Oct 2017)
3162 Daniel Stenberg (4 Oct 2017)
3163 - RELEASE-NOTES: curl 7.56.0
3165 - THANKS: added new 7.56.0 contributors
3167 Jay Satiro (4 Oct 2017)
3168 - build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
3170 Ref: https://github.com/curl/curl/issues/1002
3172 Michael Kaufmann (3 Oct 2017)
3173 - idn: fix source code comment
3175 - vtls: compare and clone ssl configs properly
3177 Compare these settings in Curl_ssl_config_matches():
3178 - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
3179 - random_file (CURLOPT_RANDOM_FILE)
3180 - egdsocket (CURLOPT_EGDSOCKET)
3182 Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
3183 and copy the setting "sessionid" unconditionally.
3185 This means that reusing connections that are secured with a client
3186 certificate is now possible, and the statement "TLS session resumption
3187 is disabled when a client certificate is used" in the old advisory at
3188 https://curl.haxx.se/docs/adv_20170419.html is obsolete.
3190 Reviewed-by: Daniel Stenberg
3194 - proxy: read the "no_proxy" variable only if necessary
3196 Reviewed-by: Daniel Stenberg
3200 Patrick Monnerat (3 Oct 2017)
3201 - libcurl-tutorial: add casts in example to avoid compilation warnings.
3203 Daniel Stenberg (3 Oct 2017)
3204 - examples: bring back curl_formadd-using examples
3206 ... now with a -formadd suffix. While the new mime API is introduced in
3207 7.56.0 we must acknowledge that lots of users can't upgrade their curl
3208 versions immediately.
3210 - test1153: verify quoted double-qoutes in PWD response
3212 - FTP: zero terminate the entry path even on bad input
3214 ... a single double quote could leave the entry path buffer without a zero
3215 terminating byte. CVE-2017-1000254
3217 Test 1152 added to verify.
3219 Reported-by: Max Dymond
3220 Bug: https://curl.haxx.se/docs/adv_20171004.html
3222 Jay Satiro (2 Oct 2017)
3223 - [Sergei Nikulov brought this change]
3225 cmake: disable tests and man generation if perl/nroff not found
3227 Fixes https://github.com/curl/curl/issues/1500
3228 Reported-by: Jay Satiro
3230 Fixes https://github.com/curl/curl/pull/1662
3231 Assisted-by: Tom Seddon
3232 Assisted-by: dpull@users.noreply.github.com
3233 Assisted-by: elelel@users.noreply.github.com
3235 Closes https://github.com/curl/curl/pull/1924
3237 Patrick Monnerat (2 Oct 2017)
3238 - libcurl-tutorial: fix two typos.
3240 - TODO: remove deprecated form API items.
3242 - libcurl-tutorial: describe MIME API and deprecate form API.
3244 Include a guide to form/mime API conversion.
3246 Daniel Stenberg (30 Sep 2017)
3247 - cookie: fix memory leak if path was set twice in header
3249 ... this will let the second occurance override the first.
3251 Added test 1161 to verify.
3253 Reported-by: Max Dymond
3257 Dan Fandrich (30 Sep 2017)
3258 - test650: Use variable replacement to set the host address and port
3260 Otherwise, the test fails when the -b test option is used to set a
3261 different test port range.
3263 - Set and use more necessary options when some protocols are disabled
3265 When curl and libcurl are built with some protocols disabled, they stop
3266 setting and receiving some options that don't make sense with those
3267 protocols. In particular, when HTTP is disabled many options aren't set
3268 that are used only by HTTP. However, some options that appear to be
3269 HTTP-only are actually used by other protocols as well (some despite
3270 having HTTP in the name) and should be set, but weren't. This change now
3271 causes some of these options to be set and used for more (or for all)
3272 protocols. In particular, this fixes tests 646 through 649 in an
3273 HTTP-disabled build, which use the MIME API in the mail protocols.
3275 Daniel Stenberg (29 Sep 2017)
3276 - test1160: verifies cookie leak for large cookies
3278 The fix done in 20ea22ff735
3280 - cookie: fix memory leak on oversized rejection
3282 Regression brought by 2bc230de63b
3284 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
3285 Assisted-by: Max Dymond
3289 - [Anders Bakken brought this change]
3291 connect: fix race condition with happy eyeballs timeout
3293 The timer should be started after conn->connecttime is set. Otherwise
3294 the timer could expire without this condition being true:
3296 /* should we try another protocol family? */
3297 if(i == 0 && conn->tempaddr[1] == NULL &&
3298 curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
3302 Michael Kaufmann (28 Sep 2017)
3303 - docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
3307 - docs: clarify the use of environment variables for proxy
3311 - http: add custom empty headers to repeated requests
3315 - reuse_conn: don't copy flags that are known to be equal
3317 A connection can only be reused if the flags "conn_to_host" and
3318 "conn_to_port" match. Therefore it is not necessary to copy these flags
3323 Daniel Stenberg (27 Sep 2017)
3324 - curl.h: include <sys/select.h> on cygwin too
3326 When building with -std=c++14 on cygwin, this header won't be
3327 automatically included as it otherwise is.
3329 The <sys/select.h> include decision should ideally be reversed and be
3330 avoided where that header file doesn't exist.
3332 Reported-by: Ian Fette
3335 - RELEASE-NOTES: synced with d8ab5dc50
3337 Michael Kaufmann (24 Sep 2017)
3338 - tests: adjust .gitignore for new tests
3340 Jay Satiro (23 Sep 2017)
3341 - ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
3343 .. and include the core NTLM header in all NTLM-related source files.
3345 Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
3346 but did not include vtls.h where it was defined.
3348 Closes https://github.com/curl/curl/pull/1911
3350 Daniel Stenberg (23 Sep 2017)
3351 - file_range: avoid integer overflow when figuring out byte range
3353 When trying to bump the value with one and the value is already at max,
3354 it causes an integer overflow.
3357 Detected by oss-fuzz:
3358 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
3360 Assisted-by: Max Dymond
3362 Michael Kaufmann (23 Sep 2017)
3363 - tests: fix a compiler warning in test 643
3365 Jay Satiro (23 Sep 2017)
3366 - symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
3368 - Use spaces instead of tabs as the delimiter.
3370 Follow up to 7c52b12 which added the entry. The entry had used tabs but
3371 the symbol-scan parser doesn't recognize tabs and would fail the symbol.
3373 Viktor Szakats (22 Sep 2017)
3374 - metalink: fix NSS issue in MultiSSL builds
3376 In MultiSSL mode (i.e. when more than one SSL backend is compiled
3377 in), we cannot use the compile time flag `USE_NSS` as indicator that
3378 the NSS backend is in use. As far as Metalink is concerned, the SSL
3379 backend is only used for MD5, SHA-1 and SHA-256 calculations,
3380 therefore one of the available SSL backends is selected at compile
3381 time, in a strict order of preference.
3383 Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
3384 to determine whether the SSL backend used for Metalink is the NSS
3385 backend, and use that to guard the code that wants to de-initialize
3386 the NSS-specific data structure.
3388 Ref: https://github.com/curl/curl/pull/1848
3390 - ntlm: use strict order for SSL backend #if branches
3392 With the recently introduced MultiSSL support multiple SSL backends
3393 can be compiled into cURL That means that now the order of the SSL
3395 One option would be to use the same SSL backend as was configured
3396 via `curl_global_sslset()`, however, NTLMv2 support would appear
3397 to be available only with some SSL backends. For example, when
3398 eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
3399 support for NTLMv1 using Windows' Crypt API, it specifically did
3400 *not* introduce NTLMv2 support using Crypt API at the same time.
3402 So let's select one specific SSL backend for NTLM support when
3403 compiled with multiple SSL backends, using a priority order such
3404 that we support NTLMv2 even if only one compiled-in SSL backend can
3407 Ref: https://github.com/curl/curl/pull/1848
3409 Daniel Stenberg (22 Sep 2017)
3410 - symbols-in-versions: add CURLSSLSET_NO_BACKENDS
3412 ...fixup from b8e0fe19ec
3414 - imap: quote atoms properly when escaping characters
3416 Updates test 800 to verify
3421 - tests: make the imap server not verify user+password
3423 ... as the test cases themselves do that and it makes it easier to add
3426 Test 800 updated to use user name + password that need quoting.
3428 Test 856 updated to trigger an auth fail differently.
3432 - vtls: provide curl_global_sslset() even in non-SSL builds
3434 ... it just returns error:
3436 Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
3437 Reported-by: Marcel Raad
3441 Patrick Monnerat (22 Sep 2017)
3442 - form/mime: field names are not allowed to contain zero-valued bytes.
3444 Also suppress length argument of curl_mime_name() (names are always
3447 Daniel Stenberg (21 Sep 2017)
3448 - [Dirk Feytons brought this change]
3450 openssl: only verify RSA private key if supported
3452 In some cases the RSA key does not support verifying it because it's
3453 located on a smart card, an engine wants to hide it, ...
3454 Check the flags on the key before trying to verify it.
3455 OpenSSL does the same thing internally; see ssl/ssl_rsa.c
3459 Marcel Raad (21 Sep 2017)
3460 - examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
3462 Otherwise, typecheck-gcc.h warns on MinGW-w64.
3464 Patrick Monnerat (20 Sep 2017)
3465 - mime: rephrase the multipart output state machine (#1898) ...
3467 ... in hope coverity will like it much.
3469 - mime: fix an explicit null dereference (#1899)
3471 Daniel Stenberg (20 Sep 2017)
3472 - curl: check fseek() return code and bail on error
3474 Detected by coverity. CID 1418137.
3476 - smtp: fix memory leak in OOM
3478 Regression since ce0881edee
3480 Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
3483 - RELEASE-NOTES: synced with 5fe85587c
3485 - [Pavel Pavlov brought this change]
3487 cookies: use lock when using CURLINFO_COOKIELIST
3491 - [Max Dymond brought this change]
3493 ossfuzz: changes before merging the generated corpora
3495 Before merging in the oss-fuzz corpora from Google, there are some changes
3497 - Add a read corpus script, to display corpus files nicely.
3498 - Change the behaviour of the fuzzer so that TLV parse failures all now
3499 go down the same execution paths, which should reduce the size of the
3501 - Make unknown TLVs a failure to parse, which should decrease the size
3502 of the corpora as well.
3506 - mime:escape_string minor clarification change
3508 ... as it also removes a warning with old gcc versions.
3510 Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html
3511 Reported-by: Ben Greear
3513 - [Max Dymond brought this change]
3515 ossfuzz: don't write out to stdout
3517 Don't make the fuzzer write out to stdout - instead write some of the
3518 contents to a memory block so we exercise the data output code but
3523 - cookies: reject oversized cookies
3525 ... instead of truncating them.
3527 There's no fixed limit for acceptable cookie names in RFC 6265, but the
3528 entire cookie is said to be less than 4096 bytes (section 6.1). This is
3529 also what browsers seem to implement.
3531 We now allow max 5000 bytes cookie header. Max 4095 bytes length per
3532 cookie name and value. Name + value together may not exceed 4096 bytes.
3534 Added test 1151 to verify
3536 Bug: https://curl.haxx.se/mail/lib-2017-09/0062.html
3537 Reported-by: Kevin Smith
3541 - travis: on mac, don't install openssl or libidn
3543 - openssl is already installed and causes warnings when trying to
3546 - libidn isn't used these days, and homebrew doesn't seem to have a
3547 libidn2 package to replace with easily
3551 - curl: make str2udouble not return values on error
3553 ... previously it would store a return value even when it returned
3554 error, which could make the value get used anyway!
3556 Reported-by: Brian Carpenter
3559 Jay Satiro (18 Sep 2017)
3560 - socks: fix incorrect port number in SOCKS4 error message
3562 Prior to this change it appears the SOCKS5 port parsing was erroneously
3563 used for the SOCKS4 error message, and as a result an incorrect port
3564 would be shown in the error message.
3566 Bug: https://github.com/curl/curl/issues/1892
3567 Reported-by: Jackarain@users.noreply.github.com
3569 - [Marc Aldorasi brought this change]
3571 schannel: Support partial send for when data is too large
3573 Schannel can only encrypt a certain amount of data at once. Instead of
3574 failing when too much data is to be sent at once, send as much data as
3575 we can and let the caller send the remaining data by calling send again.
3577 Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html
3579 Closes https://github.com/curl/curl/pull/1890
3581 - [David Benjamin brought this change]
3583 openssl: add missing includes
3585 lib/vtls/openssl.c uses OpenSSL APIs from BUF_MEM and BIO APIs. Include
3586 their headers directly rather than relying on other OpenSSL headers
3589 Closes https://github.com/curl/curl/pull/1891
3591 Daniel Stenberg (15 Sep 2017)
3592 - conversions: fix several compiler warnings
3594 - server/getpart: provide dummy function to build conversion enabled
3596 - non-ascii: use iconv() with 'char **' argument
3598 Bug: https://curl.haxx.se/mail/lib-2017-09/0031.html
3600 - escape.c: error: pointer targets differ in signedness
3602 - docs: clarify the CURLOPT_INTERLEAVE* options behavior
3604 - [Max Dymond brought this change]
3606 rtsp: Segfault in rtsp.c when using WRITEDATA
3608 If the INTERLEAVEFUNCTION is defined, then use that plus the
3609 INTERLEAVEDATA information when writing RTP. Otherwise, use
3610 WRITEFUNCTION and WRITEDATA.
3615 Marcel Raad (15 Sep 2017)
3616 - [Isaac Boukris brought this change]
3618 tests: enable gssapi in travis-ci linux build
3620 Closes https://github.com/curl/curl/pull/1687
3622 - [Isaac Boukris brought this change]
3624 tests: add initial gssapi test using stub implementation
3626 The stub implementation is pre-loaded using LD_PRELOAD
3627 and emulates common gssapi uses (only builds if curl is
3628 initially built with gssapi support).
3630 The initial tests are currently disabled for debug builds
3631 as LD_PRELOAD is not used then.
3633 Ref: https://github.com/curl/curl/pull/1687
3635 Daniel Stenberg (15 Sep 2017)
3636 - test1150: verify same host fetch using different ports over proxy
3640 - URL: on connection re-use, still pick the new remote port
3642 ... as when a proxy connection is being re-used, it can still get a
3643 different remote port.
3646 Reported-by: Oli Kingshott
3648 - RELEASE-NOTES: synced with 87501e57f
3650 - code style: remove wrong uses of multiple spaces
3654 - checksrc: detect and warn for multiple spaces
3656 - code style: use space after semicolon
3658 - checksrc: verify space after semicolons
3660 - code style: use spaces around pluses
3662 - checksrc: detect and warn for lack of spaces next to plus signs
3664 - code style: use spaces around equals signs
3666 - checksrc: verify spaces around equals signs
3668 ... as the code style mandates.
3670 - Curl_checkheaders: make it available for IMAP and SMTP too
3672 ... not only HTTP uses this now.
3676 - travis: add build without HTTP/SMTP/IMAP
3678 Jay Satiro (10 Sep 2017)
3679 - mbedtls: enable CA path processing
3681 CA path processing was implemented when mbedtls.c was added to libcurl
3682 in fe7590f, but it was never enabled.
3684 Bug: https://github.com/curl/curl/issues/1877
3685 Reported-by: SBKarr@users.noreply.github.com
3687 Daniel Stenberg (8 Sep 2017)
3688 - rtsp: do not call fwrite() with NULL pointer FILE *
3690 If the default write callback is used and no destination has been set, a
3691 NULL pointer would be passed to fwrite()'s 4th argument.
3693 OSS-fuzz bug https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3327
3694 (not publicly open yet)
3696 Detected by OSS-fuzz
3699 - configure: use -Wno-varargs on clang 3.9[.X] debug builds
3701 ... to avoid a clang bug
3703 - [Max Dymond brought this change]
3705 ossfuzz: add some more handled CURL options
3707 Add support for HEADER, COOKIE, RANGE, CUSTOMREQUEST, MAIL_RECIPIENT,
3708 MAIL_FROM and uploading data.
3710 - configure: check for C++ compiler after C, to make it non-fatal
3712 The tests for object file/executable file extensions are presumably only
3713 done for the first of these macros in the configure file.
3715 Bug: https://github.com/curl/curl/pull/1851#issuecomment-327597515
3716 Reported-by: Marcel Raad
3719 Patrick Monnerat (7 Sep 2017)
3720 - form API: add new test 650.
3722 Now that the form API is deprecated and not used anymore in curl tool,
3723 a lot of its features left untested. Test 650 attempts to check all these
3724 features not tested elsewhere.
3726 Jay Satiro (7 Sep 2017)
3727 - configure: fix curl_off_t check's include order
3729 - Prepend srcdir include path instead of append.
3731 Prior to this change it was possible that during the check for the size
3732 of curl_off_t the include path of a user's already installed curl could
3733 come before the include path of the to-be-built curl, resulting in the
3734 system.h of the former being incorrectly included for that check.
3736 Closes https://github.com/curl/curl/pull/1870
3738 Daniel Stenberg (7 Sep 2017)
3739 - [Jakub Zakrzewski brought this change]
3741 KNOWN_BUGS: Remove CMake symbol hiding issue
3743 It has already been fixed in 6140dfc
3745 - http-proxy: when not doing CONNECT, that phase is done immediately
3747 `conn->connect_state` is NULL when doing a regular non-CONNECT request
3748 over the proxy and should therefor be considered complete at once.
3752 Reported-by: Lawrence Wagerfield
3754 - [Johannes Schindelin brought this change]
3756 OpenSSL: fix yet another mistake while encapsulating SSL backend data
3758 Another mistake in my manual fixups of the largely mechanical
3759 search-and-replace ("connssl->" -> "BACKEND->"), just like the previous
3760 commit concerning HTTPS proxies (and hence not caught during my
3766 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3768 - [Johannes Schindelin brought this change]
3770 OpenSSL: fix erroneous SSL backend encapsulation
3772 In d65e6cc4f (vtls: prepare the SSL backends for encapsulated private
3773 data, 2017-06-21), this developer prepared for a separation of the
3774 private data of the SSL backends from the general connection data.
3776 This conversion was partially automated (search-and-replace) and
3777 partially manual (e.g. proxy_ssl's backend data).
3779 Sadly, there was a crucial error in the manual part, where the wrong
3780 handle was used: rather than connecting ssl[sockindex]' BIO to the
3781 proxy_ssl[sockindex]', we reconnected proxy_ssl[sockindex]. The reason
3782 was an incorrect location to paste "BACKEND->"... d'oh.
3784 Reported by Jay Satiro in https://github.com/curl/curl/issues/1855.
3786 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3788 - [Jay Satiro brought this change]
3790 vtls: fix memory corruption
3792 Ever since 70f1db321 (vtls: encapsulate SSL backend-specific data,
3793 2017-07-28), the code handling HTTPS proxies was broken because the
3794 pointer to the SSL backend data was not swapped between
3795 conn->ssl[sockindex] and conn->proxy_ssl[sockindex] as intended, but
3796 instead set to NULL (causing segmentation faults).
3798 [jes: provided the commit message, tested and verified the patch]
3800 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3802 - vtls: switch to CURL_SHA256_DIGEST_LENGTH define
3804 ... instead of the prefix-less version since WolfSSL 3.12 now uses an
3805 enum with that name that causes build failures for us.
3809 Reported-by: Gisle Vanem
3811 - travis: add c-ares enabled builds linux + osx
3815 - HISTORY: added some recent items
3817 Jay Satiro (6 Sep 2017)
3818 - SSL: fix unused parameter warnings
3820 Patrick Monnerat (6 Sep 2017)
3821 - mime: drop internal FILE * support.
3823 - The part kind MIMEKIND_FILE and associated code are suppressed.
3824 - Seek data origin offset not used anymore: suppressed.
3825 - MIMEKIND_NAMEDFILE renamed MIMEKIND_FILE; associated fields/functions
3826 renamed accordingly.
3827 - Curl_getformdata() processes stdin via a callback.
3829 Daniel Stenberg (6 Sep 2017)
3830 - configure: remove --enable-soname-bump and SONAME_BUMP
3832 Back in 2008, (and commit 3f3d6ebe665f3) we changed the logic in how we
3833 determine the native type for `curl_off_t`. To really make sure we
3834 didn't break ABI without bumping SONAME, we introduced logic that
3835 attempted to detect that it would use a different size and thus not be
3836 compatible. We also provided a manual switch that allowed users to tell
3837 configure to bump SONAME by force.
3839 Today, we know of no one who ever got a SONAME bump auto-detected and we
3840 don't know of anyone who's using the manual bump feature. The auto-
3841 detection is also no longer working since we introduced defining
3842 curl_off_t in system.h (7.55.0).
3844 Finally, this bumping logic is not present in the cmake build.
3848 Jay Satiro (6 Sep 2017)
3849 - [Gisle Vanem brought this change]
3851 vtls: select ssl backend case-insensitive (follow-up)
3853 - Do a case-insensitive comparison of CURL_SSL_BACKEND env as well.
3855 - Change Curl_strcasecompare calls to strcasecompare
3856 (maps to the former but shorter).
3858 Follow-up to c290b8f.
3860 Bug: https://github.com/curl/curl/commit/c290b8f#commitcomment-24094313
3862 Co-authored-by: Jay Satiro
3864 - openssl: Integrate Peter Wu's SSLKEYLOGFILE implementation
3866 This is an adaptation of 2 of Peter Wu's SSLKEYLOGFILE implementations.
3868 The first one, written for old OpenSSL versions:
3869 https://git.lekensteyn.nl/peter/wireshark-notes/tree/src/sslkeylog.c
3871 The second one, written for BoringSSL and new OpenSSL versions:
3872 https://github.com/curl/curl/pull/1346
3874 Note the first one is GPL licensed but the author gave permission to
3875 waive that license for libcurl.
3877 As of right now this feature is disabled by default, and does not have
3878 a configure option to enable it. To enable this feature define
3879 ENABLE_SSLKEYLOGFILE when building libcurl and set environment
3880 variable SSLKEYLOGFILE to a pathname that will receive the keys.
3882 And in Wireshark change your preferences to point to that key file:
3883 Edit > Preferences > Protocols > SSL > Master-Secret
3885 Co-authored-by: Peter Wu
3887 Ref: https://github.com/curl/curl/pull/1030
3888 Ref: https://github.com/curl/curl/pull/1346
3890 Closes https://github.com/curl/curl/pull/1866
3892 Patrick Monnerat (5 Sep 2017)
3893 - mime: fix a trivial warning.
3895 - mime: replace 'struct Curl_mimepart' by 'curl_mimepart' in encoder code.
3897 mime_state is now a typedef.
3899 - mime: implement encoders.
3901 curl_mime_encoder() is operational and documented.
3902 curl tool -F option is extended with ";encoder=".
3903 curl tool --libcurl option generates calls to curl_mime_encoder().
3904 New encoder tests 648 & 649.
3905 Test 1404 extended with an encoder specification.
3907 - runtests.pl: support attribute "nonewline" in part verify/upload.
3909 - [Daniel Stenberg brought this change]
3913 - [Daniel Stenberg brought this change]
3915 mime: unified to use the typedef'd mime structs everywhere
3917 ... and slightly edited to follow our code style better.
3919 - [Daniel Stenberg brought this change]
3921 curl.h: use lower case curl_mime* as for all public symbols
3923 - [Daniel Stenberg brought this change]
3925 docs/curl_mime_*.3: use correct variable types in examples
3927 Kamil Dudka (5 Sep 2017)
3928 - openssl: use OpenSSL's default ciphers by default
3930 Up2date versions of OpenSSL maintain the default reasonably secure
3931 without breaking compatibility, so it is better not to override the
3932 default by curl. Suggested at https://bugzilla.redhat.com/1483972
3936 Viktor Szakats (5 Sep 2017)
3937 - examples/mime: minor example code fixes
3939 Daniel Stenberg (5 Sep 2017)
3940 - docs/curl_mime_*.3: added examples
3942 - configure: add MultiSSL to FEATURES when enabled
3944 ...for curl-config and its corresponding test 1014
3946 - http-proxy: treat all 2xx as CONNECT success
3948 Added test 1904 to verify.
3950 Reported-by: Lawrence Wagerfield
3954 - MAIL-ETIQUETTE: added "1.9 Your emails are public"
3956 - curl.h: fix "unused checksrc ignore", remove dangling reference
3958 ... to a README file that doesn't exist anymore
3960 Viktor Szakats (4 Sep 2017)
3961 - docs: Update to secure URL versions
3963 - mime: use CURL_ZERO_TERMINATED in examples
3965 and some minor whitespace fixes
3967 Daniel Stenberg (4 Sep 2017)
3968 - schannel: return CURLE_SSL_CACERT on failed verification
3970 ... not *CACERT_BADFILE as it isn't really because of a bad file.
3972 Bug: https://curl.haxx.se/mail/lib-2017-09/0002.html
3975 - test1135: fixed after bd8070085f9
3977 - examples/post-callback: stop returning one byte at a time
3979 ... since people copy and paste code from this example and thus they get
3980 an inefficient POST operation without a good reason and sometimes
3981 without understanding why.
3983 Instead this now returns as much data as possible.
3985 - RELEASE-NOTES: fixed the function counter script
3987 - curl.h: make the curl_strequal() protos use the same style
3989 ... as the other functions. Makes it easier to machine-parse!
3991 - docs: curl_mime_*.3 man page formatting edits
3993 - RELEASE-NOTES: synced with 1ab9e9b50
3995 Patrick Monnerat (4 Sep 2017)
3996 - lib: bump version info (soname). Adapt and reenable test 1135.
3998 Daniel Stenberg (3 Sep 2017)
3999 - headers: move the global_sslset() proto from multi.h to curl.h
4001 As it was added to multi.h simply to not break test 1135, which now has
4002 been disabled due to the mime API addition anyway and su we can now move
4003 the sslset stuff to where the other curl_global_* prototypes are.
4005 Patrick Monnerat (3 Sep 2017)
4006 - mime: fix signed/unsigned conversions.
4008 Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
4010 Jay Satiro (3 Sep 2017)
4011 - tool_formparse: fix some trivial warnings
4013 Patrick Monnerat (3 Sep 2017)
4014 - mime: use size_t instead of ssize_t in public API interface.
4016 To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED
4017 has been introduced.
4019 Documentation updated accordingly.
4021 symbols in versions updated. Added form API symbols deprecation info.
4023 - mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().
4025 This feature is badly supported in Windows: as a replacement, a caller has
4026 to use curl_mime_data_cb() with fread, fseek and possibly fclose
4027 callbacks to process opened files.
4029 The cli tool and documentation are updated accordingly.
4031 The feature is however kept internally for form API compatibility, with
4032 the known caveats it always had.
4034 As a side effect, stdin size is not determined by the cli tool even if
4035 possible and this results in a chunked transfer encoding. Test 173 is
4036 updated accordingly.
4038 - mime: fix some implicit curl_off_t --> size_t conversion warnings.
4040 - mime: tests and examples.
4042 Additional mime-specific tests.
4043 Existing tests updated to reflect small differences (Expect: 100-continue,
4044 data size change due to empty lines, etc).
4045 Option -F headers= keyword added to tests.
4046 test1135 disabled until the entry point order change is resolved.
4047 New example smtp-mime.
4048 Examples postit2 and multi-post converted from form API to mime API.
4050 - mime: use in curl cli tool instead of form API.
4052 Extended -F option syntax to support multipart mail messages.
4053 -F keyword headers= added to include custom headers in parts.
4054 Documentation upgraded.
4056 - mime: new MIME API.
4058 Available in HTTP, SMTP and IMAP.
4059 Deprecates the FORM API.
4060 See CURLOPT_MIMEPOST.
4061 Lib code and associated documentation.
4063 - test564: Add a warning comment about shell profile output.
4065 Shell profile output makes the SSH server failing and this problem reason
4066 is not easy to find when no hint is given.
4068 - checksrc: disable SPACEBEFOREPAREN for case statement.
4070 The case keyword may be followed by a constant expression and thus should
4071 allow it to start with an open parenthesis.
4073 - runtests.pl: allow <file[1-4]> tags in client section.
4075 This enables tests to create more than one file on the client side.
4077 - runtests.pl: Apply strippart to upload too.
4079 This will allow substitution of boundaries in mail messages.
4081 - Curl_base64_encode: always call with a real data handle.
4083 Some calls in different modules were setting the data handle to NULL, causing
4084 segmentation faults when using builds that enable character code conversions.
4086 - non-ascii: allow conversion functions to be called with a NULL data handle.
4088 - http: fix a memory leakage in checkrtspprefix().
4090 Daniel Stenberg (2 Sep 2017)
4091 - [Max Dymond brought this change]
4093 ossfuzz: Move to C++ for curl_fuzzer.
4095 Automake gets confused if you want to use C++ static libraries with C
4096 code - basically we need to involve the clang++ linker. The easiest way
4097 of achieving this is to rename the C code as C++ code. This gets us a
4098 bit further along the path and ought to be compatible with Google's
4101 - curl_global_sslset: select backend by name case insensitively
4105 - [Max Dymond brought this change]
4107 ossfuzz: additional seed corpora
4109 Create simple seed corpora for:
4117 based off the tests of the same number.
4121 - [Max Dymond brought this change]
4123 ossfuzz: moving towards the ideal integration
4125 - Start with the basic code from the ossfuzz project.
4126 - Rewrite fuzz corpora to be binary files full of Type-Length-Value
4127 data, and write a glue layer in the fuzzing function to convert
4128 corpora into CURL options.
4129 - Have supporting functions to generate corpora from existing tests
4130 - Integrate with Makefile.am
4132 - strcase: corrected comment header for Curl_strcasecompare()
4134 - unit1301: fix error message on first test
4136 - curl_global_sslset.3: show the struct and enum too
4138 ... so that users can actually write code based on the man page alone,
4139 not having to read the header file.
4141 Jay Satiro (31 Aug 2017)
4142 - darwinssl: handle long strings in TLS certs (follow-up)
4144 - Fix handling certificate subjects that are already UTF-8 encoded.
4146 Follow-up to b3b75d1 from two days ago. Since then a copy would be
4147 skipped if the subject was already UTF-8, possibly resulting in a NULL
4150 Ref: https://github.com/curl/curl/issues/1823
4151 Ref: https://github.com/curl/curl/pull/1831
4153 Closes https://github.com/curl/curl/pull/1836
4155 Daniel Stenberg (31 Aug 2017)
4156 - cyassl: call it the "WolfSSL" backend
4158 ... instead of cyassl, as this is the current name for it.
4162 - polarssl: fix multissl breakage
4164 Reported-by: Dan Fandrich
4165 Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html
4168 - configure: remove the leading comma from the backends list
4170 ... when darwinssl is used.
4172 Reported-by: Viktor Szakats
4173 Bug: https://github.com/curl/curl/commit/b0989cd3abaff4f9a0717b4875022fa79e33b481#commitcomment-23943493
4177 Kamil Dudka (30 Aug 2017)
4178 - examples/sslbackend.c: fix failure of 'make checksrc'
4180 ./sslbackend.c:58:3: warning: else after closing brace on same line (BRACEELSE)
4181 } else if(isdigit(*name)) {
4183 ./sslbackend.c:62:3: warning: else after closing brace on same line (BRACEELSE)
4187 Viktor Szakats (30 Aug 2017)
4188 - makefile.m32: add multissl support
4190 Closes https://github.com/curl/curl/pull/1840
4192 Daniel Stenberg (30 Aug 2017)
4193 - curl.h: CURLSSLBACKEND_WOLFSSL used wrong value
4195 The CURLSSLBACKEND_WOLFSSL is supposed to be an alias for
4196 CURLSSLBACKEND_CYASSL, but used an erronous value. To reduce the risk
4197 for a similar mistake, define the backend aliases to use the enum values
4200 Reported-by: Gisle Vanem
4201 Bug: https://curl.haxx.se/mail/lib-2017-08/0120.html
4203 - curl_global_sslset.3: clarify
4205 it is a one time *set*, not necessarily a one time use... it can be
4206 called again if the first call failed or just listed the alternatives.
4208 clarify that the available backends are the ones this build supports
4210 plus add some formatting
4212 Reported-by: Rich Gray
4213 Bug: https://curl.haxx.se/mail/lib-2017-08/0119.html
4215 - curl/multi.h: remove duplicated closing c++ brace
4217 Regression since 1328f69d53f2f2e93
4220 Reported-by: Andrei Karas
4222 - RELEASE-NOTES: synced with 8c33c963a
4224 - HELP-US.md: spelling
4226 - HELP-US.md: "How to get started helping out in the curl project"
4230 Dan Fandrich (29 Aug 2017)
4231 - asyn-thread: Fixed cleanup after OOM
4233 destroy_async_data() assumes that if the flag "done" is not set yet, the
4234 thread itself will clean up once the request is complete. But if an
4235 error (generally OOM) occurs before the thread even has a chance to
4236 start, it will never get a chance to clean up and memory will be leaked.
4237 By clearing "done" only just before starting the thread, the correct
4238 cleanup sequence will happen in all cases.
4240 Daniel Stenberg (28 Aug 2017)
4241 - curl_global_init.3: mention curl_global_sslset(3)
4243 Dan Fandrich (28 Aug 2017)
4244 - unit1606: Fixed shadowed variable warning
4246 - asyn-thread: Improved cleanup after OOM situations
4248 - asyn-thread: Set errno to the proper value ENOMEM in OOM situation
4250 This used to be set in some configurations to EAI_MEMORY which is not a
4251 valid value for errno and caused Curl_strerror to fail an assertion.
4253 Daniel Stenberg (28 Aug 2017)
4254 - [Johannes Schindelin brought this change]
4256 configure: Handle "MultiSSL" specially When versioning symbols
4258 There is a mode in which libcurl is compiled with versioned symbols,
4259 depending on the active SSL backend.
4261 When multiple SSL backends are active, it does not make sense to favor
4262 one over the others, so let's not: introduce a new prefix for the case
4263 where multiple SSL backends are compiled into cURL.
4265 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4267 - [Johannes Schindelin brought this change]
4269 configure: allow setting the default SSL backend
4271 Previously, we used as default SSL backend whatever was first in the
4272 `available_backends` array.
4274 However, some users may want to override that default without patching
4277 Now they can: with the --with-default-ssl-backend=<backend> option of
4278 the ./configure script.
4280 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4282 - [Johannes Schindelin brought this change]
4284 vtls: use Curl_ssl_multi pseudo backend only when needed
4286 When only one SSL backend is configured, it is totally unnecessary to
4287 let multissl_init() configure the backend at runtime, we can select the
4288 correct backend at build time already.
4290 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4292 - [Johannes Schindelin brought this change]
4294 version: if built with more than one SSL backend, report all of them
4296 To discern the active one from the inactive ones, put the latter into
4299 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4301 - [Johannes Schindelin brought this change]
4303 version: add the CURL_VERSION_MULTI_SSL feature flag
4305 This new feature flag reports When cURL was built with multiple SSL
4308 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4310 - [Johannes Schindelin brought this change]
4312 metalink: allow compiling with multiple SSL backends
4314 Previously, the code assumed that at most one of the SSL backends would
4315 be compiled in, emulating OpenSSL's functions if the configured backend
4316 was not OpenSSL itself.
4318 However, now we allow building with multiple SSL backends and choosing
4319 one at runtime. Therefore, metalink needs to be adjusted to handle this
4322 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4324 - [Johannes Schindelin brought this change]
4326 docs/examples: demonstrate how to select SSL backends
4328 The newly-introduced curl_global_sslset() function deserves to be
4331 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4333 - [Johannes Schindelin brought this change]
4335 Add a man page for curl_global_sslset()
4337 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4339 - [Johannes Schindelin brought this change]
4341 vtls: introduce curl_global_sslset()
4343 Let's add a compile time safe API to select an SSL backend. This
4344 function needs to be called *before* curl_global_init(), and can be
4347 Side note: we do not explicitly test that it is called before
4348 curl_global_init(), but we do verify that it is not called multiple times
4351 If SSL is used before the function was called, it will use whatever the
4352 CURL_SSL_BACKEND environment variable says (or default to the first
4353 available SSL backend), and if a subsequent call to
4354 curl_global_sslset() disagrees with the previous choice, it will fail
4355 with CURLSSLSET_TOO_LATE.
4357 The function also accepts an "avail" parameter to point to a (read-only)
4358 NULL-terminated list of available backends. This comes in real handy if
4359 an application wants to let the user choose between whatever SSL backends
4360 the currently available libcurl has to offer: simply call
4362 curl_global_sslset(-1, NULL, &avail);
4364 which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
4365 variable to point to the relevant information to present to the user.
4367 Just like with the HTTP/2 push functions, we have to add the function
4368 declaration of curl_global_sslset() function to the header file
4369 *multi.h* because VMS and OS/400 require a stable order of functions
4370 declared in include/curl/*.h (where the header files are sorted
4371 alphabetically). This looks a bit funny, but it cannot be helped.
4373 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4375 - [Johannes Schindelin brought this change]
4377 vtls: refactor out essential information about the SSL backends
4379 There is information about the compiled-in SSL backends that is really
4380 no concern of any code other than the SSL backend itself, such as which
4381 function (if any) implements SHA-256 summing.
4383 And there is information that is really interesting to the user, such as
4384 the name, or the curl_sslbackend value.
4386 Let's factor out the latter into a publicly visible struct. This
4387 information will be used in the upcoming API to set the SSL backend
4390 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4392 - [Johannes Schindelin brought this change]
4394 vtls: allow selecting which SSL backend to use at runtime
4396 When building software for the masses, it is sometimes not possible to
4397 decide for all users which SSL backend is appropriate.
4399 Git for Windows, for example, uses cURL to perform clones, fetches and
4400 pushes via HTTPS, and some users strongly prefer OpenSSL, while other
4401 users really need to use Secure Channel because it offers
4402 enterprise-ready tools to manage credentials via Windows' Credential
4405 The current Git for Windows versions use the ugly work-around of
4406 building libcurl once with OpenSSL support and once with Secure Channel
4407 support, and switching out the binaries in the installer depending on
4410 Needless to say, this is a super ugly workaround that actually only
4411 works in some cases: Git for Windows also comes in a portable form, and
4412 in a form intended for third-party applications requiring Git
4413 functionality, in which cases this "swap out libcurl-4.dll" simply is
4416 Therefore, the Git for Windows project has a vested interest in teaching
4417 cURL to make the SSL backend a *runtime* option.
4419 This patch makes that possible.
4421 By running ./configure with multiple --with-<backend> options, cURL will
4422 be built with multiple backends.
4424 For the moment, the backend can be configured using the environment
4425 variable CURL_SSL_BACKEND (valid values are e.g. "openssl" and
4428 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4430 - [Johannes Schindelin brought this change]
4432 vtls: fold the backend ID into the Curl_ssl structure
4434 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4436 - [Johannes Schindelin brought this change]
4438 curl_ntlm_core: don't complain but #include OpenSSL header if needed
4440 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4442 - [Johannes Schindelin brought this change]
4444 vtls: encapsulate SSL backend-specific data
4446 So far, all of the SSL backends' private data has been declared as
4447 part of the ssl_connect_data struct, in one big #if .. #elif .. #endif
4450 This can only work as long as the SSL backend is a compile-time option,
4451 something we want to change in the next commits.
4453 Therefore, let's encapsulate the exact data needed by each SSL backend
4454 into a private struct, and let's avoid bleeding any SSL backend-specific
4455 information into urldata.h. This is also necessary to allow multiple SSL
4456 backends to be compiled in at the same time, as e.g. OpenSSL's and
4457 CyaSSL's headers cannot be included in the same .c file.
4459 To avoid too many malloc() calls, we simply append the private structs
4460 to the connectdata struct in allocate_conn().
4462 This requires us to take extra care of alignment issues: struct fields
4463 often need to be aligned on certain boundaries e.g. 32-bit values need to
4464 be stored at addresses that divide evenly by 4 (= 32 bit / 8
4467 We do that by assuming that no SSL backend's private data contains any
4468 fields that need to be aligned on boundaries larger than `long long`
4469 (typically 64-bit) would need. Under this assumption, we simply add a
4470 dummy field of type `long long` to the `struct connectdata` struct. This
4471 field will never be accessed but acts as a placeholder for the four
4472 instances of ssl_backend_data instead. the size of each ssl_backend_data
4473 struct is stored in the SSL backend-specific metadata, to allow
4474 allocate_conn() to know how much extra space to allocate, and how to
4475 initialize the ssl[sockindex]->backend and proxy_ssl[sockindex]->backend
4478 This would appear to be a little complicated at first, but is really
4479 necessary to encapsulate the private data of each SSL backend correctly.
4480 And we need to encapsulate thusly if we ever want to allow selecting
4481 CyaSSL and OpenSSL at runtime, as their headers cannot be included within
4482 the same .c file (there are just too many conflicting definitions and
4483 declarations for that).
4485 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4487 - [Johannes Schindelin brought this change]
4489 vtls: prepare the SSL backends for encapsulated private data
4491 At the moment, cURL's SSL backend needs to be configured at build time.
4492 As such, it is totally okay for them to hard-code their backend-specific
4493 data in the ssl_connect_data struct.
4495 In preparation for making the SSL backend a runtime option, let's make
4496 the access of said private data a bit more abstract so that it can be
4497 adjusted later in an easy manner.
4499 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4501 - [Johannes Schindelin brought this change]
4503 urldata.h: move SSPI-specific #include to correct location
4505 In 86b889485 (sasl_gssapi: Added GSS-API based Kerberos V5 variables,
4506 2014-12-03), an SSPI-specific field was added to the kerberos5data
4507 struct without moving the #include "curl_sspi.h" later in the same file.
4509 This broke the build when SSPI was enabled, unless Secure Channel was
4510 used as SSL backend, because it just so happens that Secure Channel also
4511 requires "curl_sspi.h" to be #included.
4513 In f4739f639 (urldata: include curl_sspi.h when Windows SSPI is enabled,
4514 2017-02-21), this bug was fixed incorrectly: Instead of moving the
4515 appropriate conditional #include, the Secure Channel-conditional part
4516 was now also SSPI-conditional.
4518 Fix this problem by moving the correct #include instead.
4520 This is also required for an upcoming patch that moves all the Secure
4521 Channel-specific stuff out of urldata.h and encapsulates it properly in
4522 vtls/schannel.c instead.
4524 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4526 - [Johannes Schindelin brought this change]
4528 urldata.h: remove support for obsolete PolarSSL version
4530 Since 5017d5ada (polarssl: now require 1.3.0+, 2014-03-17), we require
4531 a newer PolarSSL version. No need to keep code trying to support any
4534 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4536 - [Johannes Schindelin brought this change]
4538 getinfo: access SSL internals via Curl_ssl
4540 In the ongoing endeavor to abstract out all SSL backend-specific
4541 functionality, this is the next step: Instead of hard-coding how the
4542 different SSL backends access their internal data in getinfo.c, let's
4543 implement backend-specific functions to do that task.
4545 This will also allow for switching SSL backends as a runtime option.
4547 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4549 - [Johannes Schindelin brought this change]
4551 vtls: move SSL backends' private constants out of their header files
4553 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4555 - [Johannes Schindelin brought this change]
4557 axtls: use Curl_none_* versions of init() and cleanup()
4559 There are convenient no-op versions of the init/cleanup functions now,
4560 no need to define private ones for axTLS.
4562 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4564 - [Johannes Schindelin brought this change]
4566 vtls: remove obsolete declarations of SSL backend functionality
4568 These functions are all available via the Curl_ssl struct now, no need
4569 to declare them separately anymore.
4571 As the global declarations are removed, the corresponding function
4572 definitions are marked as file-local. The only two exceptions here are
4573 Curl_mbedtls_shutdown() and Curl_polarssl_shutdown(): only the
4574 declarations were removed, there are no function definitions to mark
4577 Please note that Curl_nss_force_init() is *still* declared globally, as
4578 the only SSL backend-specific function, because it was introduced
4579 specifically for the use case where cURL was compiled with
4580 `--without-ssl --with-nss`. For details, see f3b77e561 (http_ntlm: add
4581 support for NSS, 2010-06-27).
4583 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4585 - [Johannes Schindelin brought this change]
4587 schannel: reorder functions topologically
4589 The _shutdown() function calls the _session_free() function; While this
4590 is not a problem now (because schannel.h declares both functions), a
4591 patch looming in the immediate future with make all of these functions
4594 So let's just move the _session_free() function's definition before it
4597 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4599 - [Johannes Schindelin brought this change]
4601 axtls: reorder functions topologically
4603 The connect_finish() function (like many other functions after it) calls
4604 the Curl_axtls_close() function; While this is not a problem now
4605 (because axtls.h declares the latter function), a patch looming in the
4606 immediate future with make all of these functions file-local.
4608 So let's just move the Curl_axtls_close() function's definition before
4611 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4613 - [Johannes Schindelin brought this change]
4615 vtls: move the SUPPORT_HTTPS_PROXY flag into the Curl_ssl struct
4617 That will allow us to choose the SSL backend at runtime.
4619 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4621 - [Johannes Schindelin brought this change]
4623 vtls: convert the have_curlssl_* constants to runtime flags
4625 The entire idea of introducing the Curl_ssl struct to describe SSL
4626 backends is to prepare for choosing the SSL backend at runtime.
4628 To that end, convert all the #ifdef have_curlssl_* style conditionals
4629 to use bit flags instead.
4631 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4633 - [Johannes Schindelin brought this change]
4635 vtls: move sha256sum into the Curl_ssl struct
4637 The SHA-256 checksumming is also an SSL backend-specific function.
4638 Let's include it in the struct declaring the functionality of SSL
4641 In contrast to MD5, there is no fall-back code. To indicate this, the
4642 respective entries are NULL for those backends that offer no support for
4643 SHA-256 checksumming.
4645 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4647 - [Johannes Schindelin brought this change]
4649 vtls: move md5sum into the Curl_ssl struct
4651 The MD5 summing is also an SSL backend-specific function. So let's
4652 include it, offering the previous fall-back code as a separate function
4653 now: Curl_none_md5sum(). To allow for that, the signature had to be
4654 changed so that an error could be returned from the implementation
4655 (Curl_none_md5sum() can run out of memory).
4657 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4659 - [Johannes Schindelin brought this change]
4661 vtls: use the Curl_ssl struct to access all SSL backends' functionality
4663 This is the first step to unify the SSL backend handling. Now all the
4664 SSL backend-specific functionality is accessed via a global instance of
4665 the Curl_ssl struct.
4667 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4669 - [Johannes Schindelin brought this change]
4671 vtls: declare Curl_ssl structs for every SSL backend
4673 The idea of introducing the Curl_ssl struct was to unify how the SSL
4674 backends are declared and called. To this end, we now provide an
4675 instance of the Curl_ssl struct for each and every SSL backend.
4677 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4679 - [Johannes Schindelin brought this change]
4681 vtls: introduce a new struct for SSL backends
4683 This new struct is similar in nature to Curl_handler: it will define the
4684 functions and capabilities of all the SSL backends (where Curl_handler
4685 defines the functions and capabilities of protocol handlers).
4687 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4689 - [Johannes Schindelin brought this change]
4691 vtls: make sure every _sha256sum()'s first arg is const
4693 This patch makes the signature of the _sha256sum() functions consistent
4694 among the SSL backends, in preparation for unifying the way all SSL
4695 backends are accessed.
4697 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4699 - [Johannes Schindelin brought this change]
4701 vtls: make sure all _data_pending() functions return bool
4703 This patch makes the signature of the _data_pending() functions
4704 consistent among the SSL backends, in preparation for unifying the way
4705 all SSL backends are accessed.
4707 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4709 - [Johannes Schindelin brought this change]
4711 vtls: make sure all _cleanup() functions return void
4713 This patch makes the signature of the _cleanup() functions consistent
4714 among the SSL backends, in preparation for unifying the way all SSL
4715 backends are accessed.
4717 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4719 - [Johannes Schindelin brought this change]
4721 vtls: use consistent signature for _random() implementations
4723 This will make the upcoming multissl backend much easier to implement.
4725 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4727 - strtooff: fix build for systems with long long but no strtoll option
4731 Reported-by: Dan Fandrich
4732 Bug: https://github.com/curl/curl/pull/1758#issuecomment-324861615
4734 - darwinssl: handle long strings in TLS certs
4736 ... as the previous fixed length 128 bytes buffer was sometimes too
4742 Reported-by: Benjamin Sergeant
4743 Assisted-by: Bill Pyne, Ray Satiro, Nick Zitzmann
4745 - system.h: include sys/poll.h for AIX
4747 ... to get the event/revent defines that might be used for the poll
4750 Reported-by: Michael Smith
4754 Dan Fandrich (26 Aug 2017)
4755 - tests: Make sure libtests & unittests call curl_global_cleanup()
4757 These were missed in commit c468c27b.
4759 Jay Satiro (26 Aug 2017)
4760 - [theantigod brought this change]
4762 winbuild: fix embedded manifest option
4764 Embedded manifest option didn't work due to incorrect path.
4766 Fixes https://github.com/curl/curl/issues/1832
4768 Daniel Stenberg (25 Aug 2017)
4769 - fuzz/Makefile.am: remove curlbuild.h leftovers
4771 - examples/threaded-ssl: mention that this is for openssl before 1.1
4773 - imap: use defined names for response codes
4775 When working on this code I found the previous setup a bit weird while
4776 using proper defines increases readability.
4780 - CURLOPT_USERPWD.3: see also CURLOPT_PROXYUSERPWD
4782 - imap: support PREAUTH
4784 It is a defined possible greeting at server startup that means the
4785 connection is already authenticated. See
4786 https://tools.ietf.org/html/rfc3501#section-7.1.4
4788 Test 846 added to verify.
4793 Jay Satiro (23 Aug 2017)
4794 - config-tpf: define SIZEOF_LONG
4796 Recent changes that replaced CURL_SIZEOF_LONG in the source with
4797 SIZEOF_LONG broke builds that use the premade configuration files and
4798 don't have SIZEOF_LONG defined.
4800 Bug: https://github.com/curl/curl/issues/1816
4802 Dan Fandrich (23 Aug 2017)
4803 - test1453: Fixed <features>
4805 Daniel Stenberg (22 Aug 2017)
4806 - [Gisle Vanem brought this change]
4808 config-dos: add missing defines, SIZEOF_* and two others
4812 - curl: shorten and clean up CA cert verification error message
4814 The previous message was just too long for ordinary people and it was
4815 encouraging users to use `--insecure` a little too easy.
4817 Based-on-work-by: Frank Denis
4822 - request-target.d: mention added in 7.55.0
4824 Marcel Raad (22 Aug 2017)
4825 - tool_main: turn off MinGW CRT's globbing
4827 By default, the MinGW CRT globs command-line arguments. This prevents
4828 getting a single asterisk into an argument as test 1299 does. Turn off
4829 globbing by setting the global variable _CRT_glob to 0 for MinGW.
4831 Fixes https://github.com/curl/curl/issues/1751
4832 Closes https://github.com/curl/curl/pull/1813
4834 Viktor Szakats (22 Aug 2017)
4835 - makefile.m32: add support for libidn2
4837 libidn was replaced with libidn2 last year in configure.
4838 Caveat: libidn2 may depend on a list of further libs.
4839 These can be manually specified via CURL_LDFLAG_EXTRAS.
4841 Closes https://github.com/curl/curl/pull/1815
4843 Jay Satiro (22 Aug 2017)
4844 - [Viktor Szakats brought this change]
4846 config-win32: define SIZEOF_LONG
4848 Recent changes that replaced CURL_SIZEOF_LONG in the source with
4849 SIZEOF_LONG broke builds that use the premade configuration files and
4850 don't have SIZEOF_LONG defined.
4852 Closes https://github.com/curl/curl/pull/1814
4854 Daniel Stenberg (20 Aug 2017)
4855 - cmake: enable picky compiler options with clang and gcc
4859 - curl/system.h: fix build for hppa
4861 Reported-by: John David Anglin
4862 Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872502#10
4864 - [Even Rouault brought this change]
4866 tftp: fix memory leak on too long filename
4870 $ valgrind --leak-check=full ~/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4872 ==9752== Memcheck, a memory error detector
4873 ==9752== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
4874 ==9752== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
4875 ==9752== Command: /home/even/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4877 curl: (71) TFTP file name too long
4880 ==9752== HEAP SUMMARY:
4881 ==9752== 505 bytes in 1 blocks are definitely lost in loss record 11 of 11
4882 ==9752== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
4883 ==9752== by 0x4E61CED: Curl_urldecode (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4884 ==9752== by 0x4E75868: tftp_state_machine (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4885 ==9752== by 0x4E761B6: tftp_do (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4886 ==9752== by 0x4E711B6: multi_runsingle (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4887 ==9752== by 0x4E71D00: curl_multi_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4888 ==9752== by 0x4E6950D: curl_easy_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4889 ==9752== by 0x40E0B7: operate_do (in /home/even/install-curl-git/bin/curl)
4890 ==9752== by 0x40E849: operate (in /home/even/install-curl-git/bin/curl)
4891 ==9752== by 0x402693: main (in /home/even/install-curl-git/bin/curl)
4893 Fixes https://oss-fuzz.com/v2/testcase-detail/5232311106797568
4898 Dan Fandrich (19 Aug 2017)
4899 - runtests: fixed case insensitive matching of keywords
4901 Commit 5c2aac71 didn't work in the case of mixed-case keywords given on
4904 - tests: Make sure libtests call curl_global_cleanup()
4906 This ensures that global data allocations are freed so Valgrind stays
4907 happy. This was a problem with at least PolarSSL and mbedTLS.
4909 Daniel Stenberg (18 Aug 2017)
4910 - RELEASE-NOTES: synced with 8baead425
4912 - scripts/contri*sh: use "git log --use-mailmap"
4914 - mailmap: de-duplify some git authors
4916 - http2_recv: return error better on fatal h2 errors
4919 Figured-out-by: Tatsuhiro Tsujikawa
4921 - KNOWN_BUGS: HTTP test server 'connection-monitor' problems
4925 - curl/system.h: check for __ppc__ as well
4927 ... regression since issue #1774 (commit 10b3df10596a) since obviously
4928 some older gcc doesn't know __powerpc__ while some newer doesn't know
4933 Reported-by: Ryan Schmidt
4935 - [Jan Alexander Steffens (heftig) brought this change]
4937 http: Don't wait on CONNECT when there is no proxy
4939 Since curl 7.55.0, NetworkManager almost always failed its connectivity
4940 check by timeout. I bisected this to 5113ad04 (http-proxy: do the HTTP
4941 CONNECT process entirely non-blocking).
4943 This patch replaces !Curl_connect_complete with Curl_connect_ongoing,
4944 which returns false if the CONNECT state was left uninitialized and lets
4945 the connection continue.
4950 Also-fixed-by: Gergely Nagy
4952 - [Johannes Schindelin brought this change]
4954 metalink: adjust source code style
4956 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4958 - CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG
4960 - lib557: no longer use CURL_SIZEOF_* defines
4962 - config-win32: define SIZEOF_CURL_OFF_T
4964 - cmake: sizeof curl_off_t, remove unused detections
4966 - system.h: remove all CURL_SIZEOF_* defines
4968 ... as they're not used externally and internally we check for the sizes
4969 already in configure etc.
4973 - ftp: fix CWD when doing multicwd then nocwd on same connection
4977 Reported-by: Peter Lamare
4979 - CURLOPT_SSH_COMPRESSION.3: enable with 1L
4981 (leaves other values reserved for the future)
4983 - compressed-ssh.d: "Added: 7.56.0"
4985 - curl/system.h: checksrc compliance
4987 Jay Satiro (17 Aug 2017)
4988 - [Viktor Szakats brought this change]
4990 ssh: add the ability to enable compression (for SCP/SFTP)
4992 The required low-level logic was already available as part of
4993 `libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1]
4996 This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION`
4997 (boolean) and the new `curl` command-line option `--compressed-ssh`
4998 to request this `libssh2` feature. To have compression enabled, it
4999 is required that the SSH server supports a (zlib) compatible
5000 compression method and that `libssh2` was built with `zlib` support
5003 [1] https://www.libssh2.org/libssh2_session_flag.html
5005 Ref: https://github.com/curl/curl/issues/1732
5006 Closes https://github.com/curl/curl/pull/1735
5008 - examples/ftpuploadresume: checksrc compliance
5010 - [Maksim Stsepanenka brought this change]
5012 http_proxy: fix build error for CURL_DOES_CONVERSIONS
5014 Closes https://github.com/curl/curl/pull/1793
5016 GitHub (16 Aug 2017)
5017 - [Nick Zitzmann brought this change]
5019 configure: check for __builtin_available() availability (#1788)
5021 This change does two things:
5022 1. It un-breaks the build in Xcode 9.0. (Xcode 9.0 is currently
5023 failing trying to compile connectx() in lib/connect.c.)
5024 2. It finally weak-links the connectx() function, and falls back on
5025 connect() when run on older operating systems.
5027 Daniel Stenberg (16 Aug 2017)
5028 - travis: add metalink to some osx builds
5032 - [Max Dymond brought this change]
5034 coverage: Use two coveralls commands to get lib/vtls results
5038 - darwinssi: fix error: variable length array used
5040 - m4/curl-compilers.m4: use proper quotes around string, not backticks
5042 ... when setting clang version to assume 3.7
5044 Caused a lot of "integer expression expected" warnings by configure.
5046 - [Benbuck Nason brought this change]
5048 cmake: remove dead code for DISABLED_THREADSAFE
5052 Jay Satiro (15 Aug 2017)
5053 - [Jakub Zakrzewski brought this change]
5055 curl-confopts.m4: fix --disable-threaded-resolver
5057 Closes https://github.com/curl/curl/issues/1784
5059 Daniel Stenberg (15 Aug 2017)
5060 - [Ryan Winograd brought this change]
5062 progress: Track total times following redirects
5064 Update the progress timers `t_nslookup`, `t_connect`, `t_appconnect`,
5065 `t_pretransfer`, and `t_starttransfer` to track the total times for
5066 these activities when a redirect is followed. Previously, only the times
5067 for the most recent request would be tracked.
5071 - Rename `Curl_pgrsResetTimesSizes` to `Curl_pgrsResetTransferSizes`
5072 now that the function only resets transfer sizes and no longer
5073 modifies any of the progress timers.
5075 - Add a bool to the `Progress` struct that is used to prevent
5076 double-counting `t_starttransfer` times.
5078 Added test case 1399.
5080 Fixes #522 and Known Bug 1.8
5082 Reported-by: joshhe on github
5084 - [Benbuck Nason brought this change]
5086 cmake: remove dead code for CURL_DISABLE_RTMP
5090 Kamil Dudka (15 Aug 2017)
5091 - zsh.pl: produce a working completion script again
5093 Commit curl-7_54_0-118-g8b2f22e changed the output format of curl --help
5094 to use <file> and <dir> instead of FILE and DIR, which caused zsh.pl to
5095 produce a broken completion script:
5098 _curl:10: no such file or directory: seconds
5102 Daniel Stenberg (15 Aug 2017)
5103 - curlver: toward 7.56.0?
5105 - RELEASE-NOTES: synced with 91c46dc44
5107 - test1449: FTP download range with an too large size
5109 - strtoofft: reduce integer overflow risks globally
5111 ... make sure we bail out on overflows.
5113 Reported-by: Brian Carpenter
5116 - travis: build the examples too
5118 to make sure they keep building warning-free
5122 - runtests: match keywords case insensitively
5124 - examples/ftpuploadresume.c: use portable code
5126 ... converted from the MS specific _snscanf()
5128 Version 7.55.1 (13 Aug 2017)
5130 Daniel Stenberg (13 Aug 2017)
5131 - RELEASE-NOTES/THANKS: curl 7.55.1 release time
5133 - gitignore: ignore .xz now instead of .lzma
5135 - [Sergei Nikulov brought this change]
5137 cmake: Threads detection update. ref: #1702
5141 - ipv6_scope: support unique local addresses
5145 Reported-by: James Slaughter
5147 - [Alex Potapenko brought this change]
5149 curl/system.h: GCC doesn't define __ppc__ on PowerPC, uses __powerpc__
5153 - test1448: verify redirect to IDN using URL
5157 - [Salah-Eddin Shaban brought this change]
5159 redirect: skip URL encoding for host names
5161 This fixes redirects to IDN URLs
5165 Reported by: David Lord
5167 - test2032: mark as flaky (again)
5169 - travis: test cmake build on tarball too
5171 Could've prevented #1755
5173 - [Simon Warta brought this change]
5175 cmake: allow user to override CMAKE_DEBUG_POSTFIX
5179 - connect-to.d: better language
5181 - connect-to.d: clarified
5183 - bagder/Curl_tvdiff_us: fix the math
5185 Regression since adef394ac5 (released in 7.55.0)
5187 Reported-by: Han Qiao
5191 - curl/system.h: add Oracle Solaris Studio
5195 - [Alessandro Ghedini brought this change]
5197 docs: fix typo funtion -> function
5201 Alessandro Ghedini (12 Aug 2017)
5202 - docs: fix grammar in CURL_SSLVERSION_MAX_DEFAULT description
5204 - docs: fix typo stuct -> struct
5206 Dan Fandrich (12 Aug 2017)
5207 - test1447: require a curl with http support
5209 Daniel Stenberg (11 Aug 2017)
5210 - [Thomas Petazzoni brought this change]
5212 curl/system.h: support more architectures
5214 The long list of architectures in include/curl/system.h is annoying to
5215 maintain, and needs to be extended for each and every architecture to
5218 Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler
5219 (we are in the GNUC condition anyway), which tells us if long is 4
5222 This fixes the build of libcurl 7.55.0 on architectures such as
5227 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5229 - test2033: this went flaky again
5231 Suspicion: when we enabled the threaded resolver by default.
5233 - test1447: verifies the parse proxy fix in 6e0e152ce5c
5235 - [Even Rouault brought this change]
5237 parse_proxy(): fix memory leak in case of invalid proxy server name
5239 Fixes the below leak:
5241 $ valgrind --leak-check=full ~/install-curl-git/bin/curl --proxy "http://a:b@/x" http://127.0.0.1
5242 curl: (5) Couldn't resolve proxy name
5244 ==5048== HEAP SUMMARY:
5245 ==5048== in use at exit: 532 bytes in 12 blocks
5246 ==5048== total heap usage: 5,288 allocs, 5,276 frees, 445,271 bytes allocated
5248 ==5048== 2 bytes in 1 blocks are definitely lost in loss record 1 of 12
5249 ==5048== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5250 ==5048== by 0x4E6CB79: parse_login_details (url.c:5614)
5251 ==5048== by 0x4E6BA82: parse_proxy (url.c:5091)
5252 ==5048== by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5253 ==5048== by 0x4E6EA18: create_conn (url.c:6498)
5254 ==5048== by 0x4E6F9B4: Curl_connect (url.c:6967)
5255 ==5048== by 0x4E86D05: multi_runsingle (multi.c:1436)
5256 ==5048== by 0x4E88432: curl_multi_perform (multi.c:2160)
5257 ==5048== by 0x4E7C515: easy_transfer (easy.c:708)
5258 ==5048== by 0x4E7C74A: easy_perform (easy.c:794)
5259 ==5048== by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5260 ==5048== by 0x414025: operate_do (tool_operate.c:1563)
5262 ==5048== 2 bytes in 1 blocks are definitely lost in loss record 2 of 12
5263 ==5048== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5264 ==5048== by 0x4E6CBB6: parse_login_details (url.c:5621)
5265 ==5048== by 0x4E6BA82: parse_proxy (url.c:5091)
5266 ==5048== by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5267 ==5048== by 0x4E6EA18: create_conn (url.c:6498)
5268 ==5048== by 0x4E6F9B4: Curl_connect (url.c:6967)
5269 ==5048== by 0x4E86D05: multi_runsingle (multi.c:1436)
5270 ==5048== by 0x4E88432: curl_multi_perform (multi.c:2160)
5271 ==5048== by 0x4E7C515: easy_transfer (easy.c:708)
5272 ==5048== by 0x4E7C74A: easy_perform (easy.c:794)
5273 ==5048== by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5274 ==5048== by 0x414025: operate_do (tool_operate.c:1563)
5276 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2984
5277 Credit to OSS Fuzz for discovery
5281 - RELEASE-NOTES: synced with 37f2195a9
5283 - curlver: bump to 7.55.1
5285 - openssl: fix "error: this statement may fall through"
5289 - [David Benjamin brought this change]
5291 openssl: remove CONST_ASN1_BIT_STRING.
5293 Just making the pointer as const works for the pre-1.1.0 path too.
5297 - maketgz: remove old *.dist files before making the tarball
5299 To avoid "old crap" unintentionally getting shipped.
5301 Bug: https://curl.haxx.se/mail/lib-2017-08/0050.html
5302 Reported-by: Christian Weisgerber
5304 Jay Satiro (10 Aug 2017)
5305 - mkhelp.pl: allow executing this script directly
5307 - Enable execute permission (chmod +x)
5309 - Change interpreter to /usr/bin/env perl
5311 Ref: https://github.com/curl/curl/issues/1743
5313 Daniel Stenberg (10 Aug 2017)
5314 - configure: use the threaded resolver backend by default if possible
5318 - cmake: move cmake_uninstall.cmake to CMake/
5322 - metalink: fix error: ‘*’ in boolean context, suggest ‘&&’ instead
5324 - dist: fix the cmake build by shipping cmake_uninstall.cmake.in too
5328 - travis: verify "make install"
5333 Marcel Raad (10 Aug 2017)
5334 - build: check out *.sln files with Windows line endings
5336 Visual Studio doesn't like LF line endings in solution files and always
5337 converts them to CRLF when doing changes to the solution. Notably, this
5338 affects the solutions in the release archive.
5340 Closes https://github.com/curl/curl/pull/1746
5342 - gitignore: ignore top-level .vs folder
5344 This folder is generated when using the CMake build system from within
5347 Closes https://github.com/curl/curl/pull/1746
5349 Jay Satiro (10 Aug 2017)
5350 - digest_sspi: Don't reuse context if the user/passwd has changed
5352 Bug: https://github.com/curl/curl/issues/1685
5353 Reported-by: paulharris@users.noreply.github.com
5355 Assisted-by: Isaac Boukris
5357 Closes https://github.com/curl/curl/pull/1742
5359 Daniel Stenberg (9 Aug 2017)
5360 - [Adam Sampson brought this change]
5362 dist: Add dictserver.py/negtelnetserver.py to EXTRA_DIST
5364 These weren't included in the 7.55.0 release, but are required in order
5365 to run the full test suite.
5369 - [Adam Sampson brought this change]
5371 curl: do bounds check using a double comparison
5373 The fix for this in 8661a0aacc01492e0436275ff36a21734f2541bb wasn't
5374 complete: if the parsed number in num is larger than will fit in a long,
5375 the conversion is undefined behaviour (causing test1427 to fail for me
5376 on IA32 with GCC 7.1, although it passes on AMD64 and ARMv7). Getting
5377 rid of the cast means the comparison will be done using doubles.
5379 It might make more sense for the max argument to also be a double...
5384 - make install: add 8 missing man pages to the installation
5386 - build: fix 'make install' with configure, install docs/libcurl/* too
5388 Broken since d24838d4da9faa
5390 Reported-by: Bernard Spil
5392 Version 7.55.0 (9 Aug 2017)
5394 Daniel Stenberg (9 Aug 2017)
5395 - RELEASE-NOTES: curl 7.55.0
5397 - THANKS: 20 new contributors in 7.55.0
5399 - [Viktor Szakats brought this change]
5401 docs/comments: Update to secure URL versions
5405 - configure: fix recv/send/select detection on Android
5407 ... since they now provide several functions as
5408 __attribute__((overloadable)), the argument detection logic need
5411 Patched-by: destman at github
5416 Marcel Raad (8 Aug 2017)
5417 - ax_code_coverage.m4: update to latest version
5419 This updates the script to aad5ad5fedb306b39f901a899b7bd305b66c418d
5420 from August 01, 2017. Notably, this removes the lconv version whitelist.
5422 Closes https://github.com/curl/curl/pull/1716
5424 Daniel Stenberg (7 Aug 2017)
5425 - test1427: verify command line parser integer overflow detection
5427 - curl: detect and bail out early on parameter integer overflows
5429 Make the number parser aware of the maximum limit curl accepts for a
5430 value and return an error immediately if larger, instead of running an
5431 integer overflow later.
5436 - glob: do not continue parsing after a strtoul() overflow range
5438 Added test 1289 to verify.
5442 Bug: https://curl.haxx.se/docs/adv_20170809A.html
5443 Reported-by: Brian Carpenter
5445 - tftp: reject file name lengths that don't fit
5447 ... and thereby avoid telling send() to send off more bytes than the
5452 Bug: https://curl.haxx.se/docs/adv_20170809B.html
5453 Reported-by: Even Rouault
5455 Credit to OSS-Fuzz for the discovery
5457 - [Even Rouault brought this change]
5459 file: output the correct buffer to the user
5461 Regression brought by 7c312f84ea930d8 (April 2017)
5465 Bug: https://curl.haxx.se/docs/adv_20170809C.html
5467 Credit to OSS-Fuzz for the discovery
5469 - easy_events: make event data static
5471 First: this function is only used in debug-builds and not in
5472 release/real builds. It is used to drive tests using the event-based
5475 A pointer to the local struct is passed to CURLMOPT_TIMERDATA, but the
5476 CURLMOPT_TIMERFUNCTION calback can in fact be called even after this
5477 funtion returns, namely when curl_multi_remove_handle() is called.
5479 Reported-by: Brian Carpenter
5481 - getparameter: avoid returning uninitialized 'usedarg'
5485 Marcel Raad (5 Aug 2017)
5486 - [Isaac Boukris brought this change]
5488 gssapi: fix memory leak of output token in multi round context
5490 When multiple rounds are needed to establish a security context
5491 (usually ntlm), we overwrite old token with a new one without free.
5492 Found by proposed gss tests using stub a gss implementation (by
5493 valgrind error), though I have confirmed the leak with a real
5494 gssapi implementation as well.
5496 Closes https://github.com/curl/curl/pull/1733
5498 - darwinssl: fix compiler warning
5501 vtls/darwinssl.c:40:8: error: extra tokens at end of #endif directive
5502 [-Werror,-Wextra-tokens]
5504 This breaks the darwinssl build on Travis. Fix it by making this token
5507 Closes https://github.com/curl/curl/pull/1734
5509 - CMake: fix CURL_WERROR for MSVC
5511 When using CURL_WERROR in MSVC builds, the debug flags were overridden
5512 by the release flags and /WX got added twice in debug mode.
5514 Closes https://github.com/curl/curl/pull/1715
5516 Daniel Stenberg (4 Aug 2017)
5517 - RELEASE-NOTES: synced with 561e9217c
5519 - test1010: verify that #1718 is fixed
5521 ... by doing two transfers in nocwd mode and check that there's no
5522 superfluous CWD command.
5524 - FTP: skip unnecessary CWD when in nocwd mode
5526 ... when reusing a connection. If it didn't do any CWD previously.
5530 Marcel Raad (4 Aug 2017)
5531 - travis: explicitly specify dist
5533 This makes the builds more reproducible as travis is currently rolling
5534 out trusty as default dist [1]. Specifically, this avoids coverage
5535 check failures when trusty is used as seen in [2] until we figure out
5538 [1] https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
5539 [2] https://github.com/curl/curl/pull/1692
5541 Closes https://github.com/curl/curl/pull/1725
5543 Daniel Stenberg (4 Aug 2017)
5544 - travis: BUILD_TYPE => T
5546 (to make the full line appear nicer on travis web UI)
5548 - travis: add osx build with darwinssl
5552 - darwin: silence compiler warnings
5554 With a clang pragma and three type fixes
5558 - BUILD.WINDOWS: mention buildconf.bat for builds off git
5560 - darwinssl: fix curlssl_sha256sum() compiler warnings on first argument
5562 - test130: verify comments in .netrc
5564 - [Gisle Vanem brought this change]
5566 netrc: skip lines starting with '#'
5568 Bug: https://curl.haxx.se/mail/lib-2017-08/0008.html
5570 Marcel Raad (3 Aug 2017)
5571 - CMake: set MSVC warning level to 4
5573 The MSVC warning level defaults to 3 in CMake. Change it to 4, which is
5574 consistent with the Visual Studio and NMake builds. Disable level 4
5575 warning C4127 for the library and additionally C4306 for the test
5576 servers to get a clean CURL_WERROR build as that warning is raised in
5577 some macros in older Visual Studio versions.
5579 Ref: https://github.com/curl/curl/pull/1667#issuecomment-314082794
5580 Closes https://github.com/curl/curl/pull/1711
5582 Daniel Stenberg (2 Aug 2017)
5583 - CURLOPT_NETRC.3: fix typo in 7e48aa386156f9c2
5585 Reported-by: Viktor Szakats
5587 - CURLOPT_NETRC.3: mention the file name on windows
5589 ... and CURLOPT_NETRC_FILE(3).
5591 - travis: build osx with libressl too
5593 - travis: build osx with openssl too
5595 - tests/server/util: fix curltime mistake from 4dee50b9c80f9
5597 Marcel Raad (1 Aug 2017)
5598 - curl_threads: fix MSVC compiler warning
5600 Use LongToHandle to convert from long to HANDLE in the Win32
5602 This should fix the following warning when compiling with
5603 MSVC 11 (2012) in 64-bit mode:
5604 lib\curl_threads.c(113): warning C4306:
5605 'type cast' : conversion from 'long' to 'HANDLE' of greater size
5607 Closes https://github.com/curl/curl/pull/1717
5609 Daniel Stenberg (1 Aug 2017)
5610 - BUGS: improved phrasing about security bugs
5612 Reported-by: Max Dymond
5614 - BUGS: clarify how to report security related bugs
5616 - [Brad Spencer brought this change]
5618 multi: fix request timer management
5620 There are some bugs in how timers are managed for a single easy handle
5621 that causes the wrong "next timeout" value to be reported to the
5622 application when a new minimum needs to be recomputed and that new
5623 minimum should be an existing timer that isn't currently set for the
5624 easy handle. When the application drives a set of easy handles via the
5625 `curl_multi_socket_action()` API (for example), it gets told to wait the
5626 wrong amount of time before the next call, which causes requests to
5627 linger for a long time (or, it is my guess, possibly forever).
5629 Bug: https://curl.haxx.se/mail/lib-2017-07/0033.html
5631 Jay Satiro (1 Aug 2017)
5632 - curl_setup: Define CURL_NO_OLDIES for building libcurl
5634 .. to catch accidental use of deprecated error codes.
5636 Ref: https://github.com/curl/curl/issues/1688#issuecomment-316764237
5638 Daniel Stenberg (1 Aug 2017)
5639 - [Jeremy Tan brought this change]
5641 configure: fix the check for IdnToUnicode
5646 - http: fix response code parser to avoid integer overflow
5648 test 1429 and 1433 were updated to work with the stricter HTTP status line
5652 Reported-by: Brian Carpenter
5654 Jay Satiro (31 Jul 2017)
5655 - [Dwarakanath Yadavalli brought this change]
5657 libcurl: Stop using error codes defined under CURL_NO_OLDIES
5659 Fixes https://github.com/curl/curl/issues/1688
5660 Closes https://github.com/curl/curl/pull/1712
5662 - include.d: clarify --include is only for response headers
5664 Follow-up to 171f8de and de6de94.
5666 Bug: https://github.com/curl/curl/commit/de6de94#commitcomment-23370851
5667 Reported-by: Daniel Stenberg
5669 Daniel Stenberg (30 Jul 2017)
5670 - [Jason Juang brought this change]
5672 cmake: support make uninstall
5676 - RELEASE-NOTES: synced with 001701c47
5678 Marcel Raad (29 Jul 2017)
5679 - AppVeyor: now really use CURL_WERROR
5681 It was misspelled as CURL_ERROR in commit
5682 2d86e8d1286e0fbe3d811e2e87fa0b5e53722db4.
5684 Closes https://github.com/curl/curl/pull/1686
5686 Jay Satiro (29 Jul 2017)
5687 - tool_help: clarify --include is only for response headers
5689 Follow-up to 171f8de.
5691 Ref: https://github.com/curl/curl/issues/1704
5693 - splay: fix signed/unsigned mismatch warning
5695 Follow-up to 4dee50b.
5697 Ref: https://github.com/curl/curl/pull/1693
5699 Daniel Stenberg (28 Jul 2017)
5700 - include.d: clarify that it concerns the response headers
5702 Reported-by: olesteban at github
5705 - [Johannes Schindelin brought this change]
5707 curl_rtmp: fix a compiler warning
5709 The headers of librtmp declare the socket as `int`, and on Windows, that
5710 disagrees with curl_socket_t.
5714 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
5716 - test1323: verify curlx_tvdiff
5718 - timeval: struct curltime is a struct timeval replacement
5720 ... to make all libcurl internals able to use the same data types for
5721 the struct members. The timeval struct differs subtly on several
5722 platforms so it makes it cumbersome to use everywhere.
5727 - darwinssl: fix variable type mistake (regression)
5729 ... which made --tlsv1.2 not work because it would blank the max tls
5732 Reported-by: Nick Miyake
5735 - multi: mention integer overflow risk if using > 500 million sockets
5737 Reported-by: ovidiu-benea@users.noreply.github.com
5742 - checksrc: escape open brace in regex
5744 ... to silence warning.
5746 Kamil Dudka (20 Jul 2017)
5747 - nss: fix a possible use-after-free in SelectClientCert()
5749 ... causing a SIGSEGV in showit() in case the handle used to initiate
5750 the connection has already been freed.
5752 This commit fixes a bug introduced in curl-7_19_5-204-g5f0cae803.
5754 Reported-by: Rob Sanders
5755 Bug: https://bugzilla.redhat.com/1436158
5757 - nss: unify the coding style of nss_send() and nss_recv()
5759 No changes in behavior intended by this commit.
5761 Marcel Raad (18 Jul 2017)
5762 - tests/server/resolve.c: fix deprecation warning
5764 MSVC warns that gethostbyname is deprecated. Always use getaddrinfo
5765 instead to fix this when IPv6 is enabled, also for IPv4 resolves. This
5766 is also consistent with what libcurl does.
5768 Closes https://github.com/curl/curl/pull/1682
5770 Jay Satiro (17 Jul 2017)
5771 - darwinssl: fix pinnedpubkey build error
5773 - s/SessionHandle/Curl_easy/
5775 Bug: https://github.com/curl/curl/commit/eb16305#commitcomment-23035670
5776 Reported-by: Gisle Vanem
5778 Marcel Raad (16 Jul 2017)
5779 - rtspd: fix GCC warning after MSVC warning fix
5782 /tests/server/rtspd.c:1194:10: warning: missing braces around
5783 initializer [-Wmissing-braces]
5785 Fix this by using memset instead of an initializer.
5787 - libtest: fix MSVC warning C4706
5789 With warning level 4, MSVC warns about assignments within conditional
5790 expressions. Change the while loop to a do-while loop to fix this. This
5791 change is also consistent with CODE_STYLE.md.
5793 - sockfilt: suppress conversion warning with explicit cast
5795 MSVC warns when implicitly casting -1 to unsigned long.
5797 - rtspd: fix MSVC level 4 warning
5799 warning C4701: potentially uninitialized local variable 'req' used
5801 - winbuild: re-enable warning C4127 for curl tool
5803 Disabled in cda19a345f6970e22fe8b7a808aeb8f086a21eac. It only needs to
5804 be disabled for libcurl.
5806 - winbuild: build with warning level 4
5808 This is consistent with 7bc64561a2e63ca93e4b0b31d350773ba80955c2, which
5809 changed the warning level from 3 to 4 for the Visual Studio project
5810 files. But disable the level 4 warning C4127 "conditional expression is
5811 constant", as that one is issued by older versions of the Windows SDK
5812 as well as curl itself under some circumstances.
5814 Closes https://github.com/curl/curl/pull/1667
5816 Jay Satiro (12 Jul 2017)
5817 - [Max Dymond brought this change]
5819 travis: install libidn2
5821 Install libidn2 to increase test coverage (IDN tests)
5823 Closes https://github.com/curl/curl/pull/1673
5825 Marcel Raad (12 Jul 2017)
5826 - travis: enable warnings also in release mode
5828 ... to get warnings also on Linux/GCC and OSX/clang.
5830 Closes https://github.com/curl/curl/pull/1666
5832 Daniel Stenberg (12 Jul 2017)
5833 - [Max Dymond brought this change]
5835 travis: install libssh2
5837 Install libssh2 to increase test coverage (SFTP, SCP)
5839 Marcel Raad (12 Jul 2017)
5840 - system.h: include winsock2.h before windows.h
5842 ... to avoid compiler warnings if the user doesn't want
5843 WIN32_LEAN_AND_MEAN.
5845 - build: remove WIN32_LEAN_AND_MEAN from individual build systems
5847 It's defined for all build systems in curl_setup.h since commit
5848 beb08481d01a07a8b10938b1078a5e298b1c2912. This caused macro
5849 redefinition warnings in the configure builds.
5851 Closes https://github.com/curl/curl/pull/1677
5853 Jay Satiro (11 Jul 2017)
5854 - ISSUE_TEMPLATE: Add a comment not to file security issues on github
5856 Marcel Raad (11 Jul 2017)
5857 - curl_setup: always define WIN32_LEAN_AND_MEAN on Windows
5859 Make sure to always define WIN32_LEAN_AND_MEAN before including any
5860 Windows headers to avoid pulling in unnecessary headers. This avoids
5861 unnecessary macro clashes and compiler warnings.
5863 Ref: https://github.com/curl/curl/issues/1562
5864 Closes https://github.com/curl/curl/pull/1672
5866 Jay Satiro (11 Jul 2017)
5867 - strerror: Preserve Windows error code in some functions
5869 This is a follow-up to af02162 which removed (SET_)ERRNO macros. That
5870 commit was an earlier draft that I committed by mistake, which was then
5871 remedied by a5834e5 and e909de6, and now this commit. With this commit
5872 there is now no difference between the current code and the changes that
5873 were approved in the final draft.
5875 Thanks-to: Max Dymond, Marcel Raad, Daniel Stenberg, Gisle Vanem
5876 Ref: https://github.com/curl/curl/pull/1589
5878 Marcel Raad (10 Jul 2017)
5879 - [Max Dymond brought this change]
5881 tests: Fix up issues with errno in test files
5883 Closes https://github.com/curl/curl/pull/1671
5885 Daniel Stenberg (10 Jul 2017)
5886 - errno: fix non-windows builds after af0216251b94e7
5888 - [Ryan Winograd brought this change]
5890 make: fix docs build on OpenBSD
5894 Marcel Raad (10 Jul 2017)
5895 - ldap: fix MinGW compiler warning
5897 ldap_bind_s is marked as deprecated in w32api's winldap.h shipping with
5898 the latest original MinGW, resulting in compiler warnings since commit
5899 f0fe66f13c93d3d0af45d9fb1231c9164e0f9dc8. Fix this for the non-SSPI
5900 case by using ldap_simple_bind_s again instead of ldap_bind_s with
5903 Closes https://github.com/curl/curl/pull/1664
5905 - curl-compilers.m4: disable warning spam with Cygwin's clang
5907 When building with Cygwin or MinGW, libtool uses a wrapper executable
5908 instead of a wrapper script [1], which is written in C and throws
5909 missing-variable-declarations warnings. Don't enable these warnings on
5910 Cygwin and MinGW in order to avoid warnings for every executable built,
5911 which spams the test suite output when using Cygwin's clang.
5913 [1] https://www.gnu.org/software/libtool/manual/html_node/Wrapper-executables.html
5915 Closes https://github.com/curl/curl/pull/1665
5917 Jay Satiro (10 Jul 2017)
5918 - curl_setup_once: Remove ERRNO/SET_ERRNO macros
5920 Prior to this change (SET_)ERRNO mapped to GetLastError/SetLastError
5921 for Win32 and regular errno otherwise.
5923 I reviewed the code and found no justifiable reason for conflating errno
5924 on WIN32 with GetLastError/SetLastError. All Win32 CRTs support errno,
5925 and any Win32 multithreaded CRT supports thread-local errno.
5927 Fixes https://github.com/curl/curl/issues/895
5928 Closes https://github.com/curl/curl/pull/1589
5930 - tool_getparam: fix potentially uninitialized err
5932 Marcel Raad (9 Jul 2017)
5933 - smb: rename variable to fix shadowing warning
5935 GCC 4.6.3 on travis complains:
5936 smb.c: In function ‘get_posix_time’:
5937 smb.c:725:13: error: declaration of ‘time’ shadows a global declaration
5940 Fix this by renaming the variable.
5942 - tool_cb_wrt: fix variable shadowing warning
5945 tool_cb_wrt.c:81: error: declaration of ‘isatty’ shadows a global
5947 /usr/include/unistd.h:782: error: shadowed declaration is here
5949 Fix this by renaming the variable.
5951 Closes https://github.com/curl/curl/pull/1661
5953 Daniel Stenberg (8 Jul 2017)
5954 - RELEASE-NOTES: synced with be2c999b8
5956 - travis: install stunnel
5958 - valgrind.supp: supress OpenSSL false positive seen on travis
5960 - travis: detect and use valgrind for normal builds
5964 - travis: add SMB, DICT, TELNET torture to coverage test
5966 - [Paul Harris brought this change]
5968 cmake: offer CMAKE_DEBUG_POSTFIX when building with MSVC
5970 Removes BUILD_RELEASE_DEBUG_DIRS since it wasn't used anywhere.
5974 - CURLOPT_POSTFIELDS.3: explain the 100-continue magic better
5976 - [Max Dymond brought this change]
5978 test1452: add telnet negotiation
5980 Add a basic telnet server for negotiating some telnet options before
5981 echoing back any data that's sent to it.
5985 - travis: do more tests in the coverage run
5987 I added a selection of torture and event tests that run "fast enough"
5989 - curl_easy_escape.3: mention the (lack of) encoding
5992 Reported-by: Jeroen Ooms
5994 - [Gisle Vanem brought this change]
5996 memdebug: don't setbuf() if the file open failed
5998 Bug: https://github.com/curl/curl/issues/828#issuecomment-313475151
6000 - appveyor: enable CURL_WERROR on all builds
6002 - cmake: add CURL_WERROR for enabling "warning as errors"
6004 - [Hannes Magnusson brought this change]
6006 cmake: remove spurious "-l" from linker flags
6010 - test506: skip if threaded-resolver
6012 - runtests: support "threaded-resolver" as a feature
6014 ... to let tests require it or skip if present
6016 - asyn-thread.c: fix unused variable warnings on macOS
6018 - http: s/TINY_INITIAL_POST_SIZE/EXPECT_100_THRESHOLD
6020 Make the name reflect its use better, and add a short comment describing
6023 - cmake: if inet_pton is used, bump _WIN32_WINNT
6025 ... and make sure inet_pton is always checked for when *not* using Windows,
6026 which is a regression from 4fc6ebe18.
6028 Idea-by: Sergei Nikulov
6030 - select.h: avoid macro redefinition harder
6032 ... by checking the POLLIN define, as the header file checks don't work
6035 - inet_pton: fix include on windows to get prototype
6037 inet_pton() exists on Windows and gets used by our cmake builds. Make
6038 sure the correct header file is included to avoid compiler warnings.
6042 - TODO: 1.10 auto-detect proxy
6046 - TODO: HTTP proxy CONNECT is non-blocking now
6048 - cmake: fix send/recv argument scanner for windows
6050 ... by simply trying the Windows argument types first.
6054 - RELEASE-NOTES: synced with 596cfb6c0
6056 - [Gisle Vanem brought this change]
6058 smb: add support for CURLOPT_FILETIME
6060 Bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6064 - travis: install nghttp2 on linux builds
6068 - [Gisle Vanem brought this change]
6070 smb: fix build for djgpp/MSDOS
6072 bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6074 - configure: try ldap/lber in reversed order first
6076 When scanning for which LDAP libraries to use, try the -lldap -llber
6077 combination before the reversed order since it has a greater chance of
6078 working when linking with libcurl statically.
6082 Reported-by: David E. Narváez
6084 - configure: remove checks for 5 functions never used
6086 fork, getprotobyname, inet_addr, perror, uname
6090 - dist: add SMB python deps into the tarball
6092 - [Max Dymond brought this change]
6094 test1451: add SMB support to the testbed
6096 Add test 1451 which does some very basic SMB testing using the impacket
6101 - [Max Dymond brought this change]
6103 test: add impacket for SMB testing
6105 Import impacket 0.9.15 for use in SMB testing. This was generated by
6106 doing "pip2.7 install -t . impacket"
6108 Unnecessary files for current testing were deleted.
6110 - travis.yml: use --enable-werror on debug builds
6112 ... to better detect and fault on compiler warnings/errors
6116 - tool_sleep: typecast to avoid macos compiler warning
6118 tool_sleep.c:54:24: error: implicit conversion loses integer precision:
6119 'long' to '__darwin_suseconds_t' (aka 'int')
6120 [-Werror,-Wshorten-64-to-32]
6122 - [Martin Kepplinger brought this change]
6124 timeval.c: Use long long constant type for timeval assignment
6126 On a 64 bit host, sparse says:
6128 timeval.c:148:15: warning: constant 0x7fffffffffffffff is so big it is long
6129 timeval.c:149:12: warning: constant 0x7fffffffffffffff is so big it is long
6131 so let's use long long constant types in order to prevent undesired overflow
6134 Bug: https://curl.haxx.se/mail/lib-2017-07/0003.html
6138 Signed-off-by: Martin Kepplinger <martink@posteo.de>
6140 - url: make the original string get used on subsequent transfers
6142 ... since CURLOPT_URL should follow the same rules as other options:
6143 they remain set until changed or cleared.
6145 Added test 1551 to verify.
6149 Reported-by: Pavel Rochnyak
6151 - [Johannes Schindelin brought this change]
6153 gtls: fix build when sizeof(long) < sizeof(void *)
6155 - Change gnutls pointer/int macros to pointer/curl_socket_t.
6156 Prior to this change they used long type as well.
6158 The size of the `long` data type can be shorter than that of pointer
6159 types. This is the case most notably on Windows.
6161 If C99 were acceptable, we could simply use `intptr_t` here. But we
6162 want to retain C89 compatibility.
6164 Simply use the trick of performing pointer arithmetic with the NULL
6165 pointer: to convert an integer `i` to a pointer, simply take the
6166 address of the `i`th element of a hypothetical character array
6167 starting at address NULL. To convert back, simply cast the pointer
6170 Thanks to Jay Satiro for the initial modification to use curl_socket_t
6171 instead of int/long.
6175 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6177 - [Ryan Winograd brought this change]
6179 unit1399: fix integer overflow
6184 - [Per Malmberg brought this change]
6186 cmake: Added compatibility options for older Windows versions
6188 CURL_STATIC_CRT and ENABLE_INET_PTON
6192 - unit1399: add logging to time comparison
6194 ... to enable tracking down why autobuilds fail on this
6198 - make: build the docs subdir only from within src
6200 ... and don't build at all in include
6202 Prompted-by-work-by: Simon Warta
6206 - [Max Dymond brought this change]
6208 test1450: fix up DICT server in torture mode
6210 As per https://github.com/curl/curl/pull/1615, the DICT server is a
6211 little spammy in torture mode due to the sockets being torn down
6212 unexpectedly. Fix this by adding some error handling to the handling
6217 - [Max Dymond brought this change]
6219 test1450: add simple testing for DICT
6221 Add a new server which provides a DICT interface. This is intended to
6222 begin coverage testing for lib/dict.c
6226 - [Dan Fandrich brought this change]
6228 test1521: fix out-of-tree builds, broken with 467da3af
6230 The test.h file is no longer in the same directory as the source file,
6231 so that directory needs to be added to the include path.
6236 - [Max Dymond brought this change]
6238 http2: handle PING frames
6240 Add a connection check function to HTTP2 based off RTSP. This causes
6241 PINGs to be handled the next time the connection is reused.
6245 - [Max Dymond brought this change]
6247 handler: refactor connection checking
6249 Add a new type of callback to Curl_handler which performs checks on
6250 the connection. Alter RTSP so that it uses this callback to do its
6251 own check on connection health.
6253 - [Dmitry Kostjuchenko brought this change]
6255 openssl: improve fallback seed of PRNG with a time based hash
6259 - [Ryan Winograd brought this change]
6261 progress: prevent resetting t_starttransfer
6263 Prevent `Curl_pgrsTime` from modifying `t_starttransfer` when invoked
6264 with `TIMER_STARTTRANSFER` more than once during a single request.
6266 When a redirect occurs, this is considered a new request and
6267 `t_starttransfer` can be updated to reflect the `t_starttransfer` time
6268 of the redirect request.
6272 Bug: https://github.com/curl/curl/pull/1602#issuecomment-310267370
6274 - curl_strequal.3: fix typo in SYNOPSIS
6276 Reported-by: Jesse Chisholm
6280 - RELEASE-NOTES: synced with ce2c3ebda
6282 Kamil Dudka (28 Jun 2017)
6283 - curl --socks5-{basic,gssapi}: control socks5 auth
6285 Closes https://github.com/curl/curl/pull/1454
6287 - CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth
6289 If libcurl was built with GSS-API support, it unconditionally advertised
6290 GSS-API authentication while connecting to a SOCKS5 proxy. This caused
6291 problems in environments with improperly configured Kerberos: a stock
6292 libcurl failed to connect, despite libcurl built without GSS-API
6293 connected fine using username and password.
6295 This commit introduces the CURLOPT_SOCKS5_AUTH option to control the
6296 allowed methods for SOCKS5 authentication at run time.
6298 Note that a new option was preferred over reusing CURLOPT_PROXYAUTH
6299 for compatibility reasons because the set of authentication methods
6300 allowed by default was different for HTTP and SOCKS5 proxies.
6302 Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html
6303 Closes https://github.com/curl/curl/pull/1454
6305 - socks: deduplicate the code for auth request
6307 - socks: use proxy_user instead of proxy_name
6309 ... to make it obvious what the data is used for
6311 Daniel Stenberg (27 Jun 2017)
6312 - libtest/make: generate lib1521.c
6314 ... instead of having the generated code checked in. This saves space in
6315 the tarball but primarily automatically adapts to newly added options.
6319 Jay Satiro (26 Jun 2017)
6320 - tool_getparam: fix memory leak on test 1147 OOM (torture tests)
6322 Bug: https://github.com/curl/curl/pull/1486#issuecomment-310926872
6323 Reported-by: Dan Fandrich
6325 Dan Fandrich (25 Jun 2017)
6326 - test1537: fixed memory leak on OOM
6328 Marcel Raad (25 Jun 2017)
6329 - test1521: fix compiler warnings
6331 The integer literal 3123123123 doesn't fit into a 32-bit signed
6332 integer, so GCC with 32-bit long warns in C90 mode:
6333 this decimal constant is unsigned only in ISO C90 [enabled by default]
6334 Fix this by using ULONG_MAX, which should fit in any curl_off_t and has
6335 the correct suffix to not issue any warnings.
6336 Also adds the missing CURLOPT_REQUEST_TARGET from commit
6337 9b167fd090f596eac828817d48c247eeae53407f.
6339 Closes https://github.com/curl/curl/pull/1611
6341 Daniel Stenberg (24 Jun 2017)
6342 - curl/system.h: add check for XTENSA for 32bit gcc
6344 Reported-by: Neil Kolban
6347 - [Henrik S. Gaßmann brought this change]
6349 winbuild: fix boringssl build
6351 Compile with `WIN32_LEAN_AND_MEAN` which prevents `windows.h` from
6352 including too much clutter including `wincrypt.h` which in turn contains
6353 some preprocessor macros that clash with boringssl symbols.
6355 Detect boringssl by checking the existance of `is_boringssl.h` and set
6356 the corresponding `HAVE_BORINGSSL` for compilation which is used in
6357 `ldap.c` to undefine the evil macros.
6361 - progress: progress.timespent needs to be us
6363 follow-up to 64ed44a815e4e to fix test 500 failures
6365 Marcel Raad (24 Jun 2017)
6366 - curl-compilers.m4: fix unknown-warning-option on Apple clang
6368 Since 5598b0bd63f690c151074494ce47ef872f004ab4, clang -v is used to
6369 detect the clang version. The version number was expected to come after
6370 the word "version". For Apple clang, this doesn't work as it has its
6371 own versioning scheme.
6372 The version number is now first searched after the string
6373 "based on LLVM". This works for Apple clang before version 7, and also
6374 for e.g. Ubuntu's clang up to version 3.7. If it's not found and the
6375 version string contains "Apple LLVM version", clang version 3.7 is
6376 assumed, which is the version that comes with Xcode 7. Otherwise, the
6377 version number is still expected after the word "version", which works
6378 for very old Apple clang versions.
6380 Ref: https://trac.macports.org/wiki/XcodeVersionInfo
6381 Fixes https://github.com/curl/curl/issues/1606
6382 Closes https://github.com/curl/curl/pull/1607
6384 Daniel Stenberg (24 Jun 2017)
6385 - progress: fix "time spent", broke in adef394ac
6387 - CURLINFO_REDIRECT_URL.3: mention the CURLOPT_MAXREDIRS case
6389 ... supported since 7.54.1
6391 - maketgz: switch to -6e for xz
6393 To reduce the memory requirement for decompress, and still do almost as
6394 good compression as with -9e.
6396 Pointed-out-by: Dan Fandrich
6398 - libtest/Makefile: remove unused lib1541 variables
6400 - CONTRIBUTE.md: mention the out-of-tree build test too
6402 - maketgz: switch to xz instead of lzma
6404 The compressed output size seems to be a tad bit smaller, but generally
6405 xz seems more preferred these days and is used directly by for example
6406 gentoo instead of bz2.
6408 "Users of LZMA Utils should move to XZ Utils" =>
6409 https://tukaani.org/lzma/
6413 - --request-target: instead of --strip-path-slash
6415 ... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH.
6417 This option instead provides the full "alternative" target to use in the
6418 request, instead of extracting the path from the URL.
6420 Test 1298 and 1299 updated accordingly.
6423 Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373
6427 Marcel Raad (21 Jun 2017)
6428 - lib1521: fix missing-variable-declarations clang warnings
6430 Declare TU-local variables static.
6432 - travis: enable typecheck-gcc warnings
6434 - switch debug and release configurations so that we get an optimized
6435 build with GCC 4.3+ as required by typecheck-gcc
6436 - enable warnings-as-errors for release builds
6437 (which have warnings disabled)
6439 Closes https://github.com/curl/curl/pull/1595
6441 - typecheck-gcc: add support for CURLINFO_OFF_T
6443 typecheck-gcc expected curl_socket_t instead of curl_off_t arguments
6444 for CURLINFO_OFF_T. Detected by test1521, unfortunately only when run
6447 Closes https://github.com/curl/curl/pull/1592
6449 Daniel Stenberg (21 Jun 2017)
6450 - [Simon Warta brought this change]
6452 ci: whitelist branches to avoid testing feature branches twice
6454 - [Gisle Vanem brought this change]
6456 lib: fix the djgpp build
6458 Bug: https://github.com/curl/curl/commit/73a2fcea0b4adea6ba342cd7ed1149782c214ae3#commitcomment-22655993
6460 Marcel Raad (20 Jun 2017)
6461 - if2ip: fix compiler warning in ISO C90 mode
6463 remote_scope_id is only used when both HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
6464 and ENABLE_IPV6 are defined instead of only one of them.
6466 Daniel Stenberg (20 Jun 2017)
6467 - travis: do the distcheck test build out-of-tree as well
6469 - http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASH
6471 ... to enable sending "OPTIONS *" which wasn't possible previously.
6473 This option currently only works for HTTP.
6475 Added test cases 1298 + 1299 to verify
6480 - test1521: test getinfo's OFF_T types too
6484 - lib1521: add curl_easy_getinfo calls to the test set
6486 Also added return value checks to make sure no unexpected return codes
6489 - [Simon Warta brought this change]
6491 automake: use $(MKHELP) variable instead if constant mkhelp.pl
6493 this improves symmetry with the rule above
6495 - [Simon Warta brought this change]
6497 mkhelp.pl: fix script name in usage text
6499 - RELEASE-NOTES: synced with 3b80d3ca4
6501 - getinfo: return sizes as curl_off_t
6503 This change introduces new alternatives for the existing six
6504 curl_easy_getinfo() options that return sizes or speeds as doubles. The
6505 new versions are named like the old ones but with an appended '_T':
6507 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
6508 CURLINFO_CONTENT_LENGTH_UPLOAD_T
6509 CURLINFO_SIZE_DOWNLOAD_T
6510 CURLINFO_SIZE_UPLOAD_T
6511 CURLINFO_SPEED_DOWNLOAD_T
6512 CURLINFO_SPEED_UPLOAD_T
6516 - PIPELINING_SERVER_BL: cleanup the internal list use
6518 The list was freed incorrectly since the llist refactor of
6519 cbae73e1dd959. Added test 1550 to verify that it works and avoid future
6522 Reported-by: Pascal Terjan
6527 - http2: fix OOM crash
6529 torture mode with test 1021 found it
6531 - CURLOPT_PREQUOTE.3: spellfix man page reference
6533 Marcel Raad (18 Jun 2017)
6534 - http_proxy: fix build with http and proxy
6536 After deff7de0eb0e22d2d142b96b9cc84cd8db5d2a48, the build without
6537 CURL_DISABLE_PROXY and CURL_DISABLE_HTTP was failing because of missing
6540 - http_proxy: fix compiler warning
6542 With CURL_DISABLE_PROXY or CURL_DISABLE_HTTP, GCC complained about a
6543 missing prototype for Curl_connect_free.
6545 Daniel Stenberg (18 Jun 2017)
6546 - TODO: update the TOC too
6548 - TODO: implement support for CURLOPT_PREQUOTE with SFTP
6550 ... also updated the CURLOPT_PREQUOTE.3 man page to mention the correct
6555 - tool_wrte_cb: remove check for config == NULL
6557 ... as it really cannot have reached this far with config being NULL,
6558 thus this is unnecesary and misleading.
6560 Bug: https://news.ycombinator.com/item?id=14577585 and
6561 https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/comment-page-1/#comment-18356
6563 Forwarded-to-us-by: Jakub Wilk
6565 - curl: prevent binary output spewed to terminal
6567 ... unless "--output -" is used. Binary detection is done by simply
6568 checking for a binary zero in early data.
6570 Added test 1425 1426 to verify.
6574 Marcel Raad (16 Jun 2017)
6575 - Makefile.m32: enable -W for MinGW32 build
6577 The configure-based build also has this in addition to -Wall.
6579 Closes https://github.com/curl/curl/pull/1578
6581 - curl-compilers.m4: enable comma clang warning
6583 It usually warns when using commas instead of semicolons or other
6584 operators by accident.
6586 Closes https://github.com/curl/curl/pull/1578
6588 - curl-compilers.m4: enable missing-variable-declarations clang warning
6590 It usually warns when forgetting to declare TU-local variables static.
6592 Closes https://github.com/curl/curl/pull/1578
6594 - curl-compilers.m4: enable double-promotion warning
6596 Enable -Wdouble-promotion for both GCC and clang. It warns on implicit
6597 promotion from float to double.
6599 Closes https://github.com/curl/curl/pull/1578
6601 - curl-compilers.m4: enable vla warning for clang
6603 Previously, that warning was only implicitly active in C90 mode.
6604 Enable it unconditionally as already done for GCC.
6606 Closes https://github.com/curl/curl/pull/1578
6608 Daniel Stenberg (16 Jun 2017)
6609 - http-proxy: fix chunked-encoded CONNECT responses
6611 Regression since 5113ad0424.
6613 ... and remove 'flaky' from test 1061 again
6617 - http-proxy: deal with EAGAIN
6619 ... the previous code would reset the header length wrongly (since
6620 5113ad0424). This makes test 1060 reliable again.
6622 Also: make sws send even smaller chunks of data to increase the
6623 likeliness of this happening.
6625 - libtest/libntlmconnect: fix compiler warnings from f94fcdb
6627 - [Jay Satiro brought this change]
6629 HTTPS-Proxy: don't offer h2 for https proxy connections
6631 Bug: https://github.com/curl/curl/issues/1254
6635 - tests: stabilize test 2032 and 2033
6637 Both these tests run the same underlying test code: libntlmconnect.c -
6638 this test code made some assumptions about socket ordering when it used
6639 curl_easy_fdset() and when we changed timing or got accidental changes
6640 in libcurl the tests would fail.
6642 The tests verify that the different transfers keep using the same
6643 connections, which I now instead made sure by adding the number of bytes
6644 each transfer gets and then verifies that they always get the same
6645 amount as when these tests worked.
6649 - test1148: verify the -# progressbar
6653 - test1061: mark as flaky
6655 Fails intermittently on travis builds since a few days. Likely due to
6658 Jay Satiro (16 Jun 2017)
6659 - url: refactor the check for Windows drive letter in path
6661 - Move the logic to detect a Windows drive letter prefix
6662 (eg c: in c:foo) into a function-like macro.
6664 Closes https://github.com/curl/curl/pull/1571
6666 - mk-ca-bundle.pl: Check curl's exit code after certdata download
6668 - No longer allow partial downloads of certdata.
6670 Prior to this change partial downloads were (erroneously?) allowed since
6671 only the server code was checked to be 200.
6673 Bug: https://github.com/curl/curl/pull/1577
6674 Reported-by: Matteo B.
6676 Daniel Stenberg (16 Jun 2017)
6677 - dist: add the fuzz dir to the tarball
6679 - configure: disable nghttp2 too if HTTP has been disabled
6681 - http-proxy: fix build with --disable-proxy or --disable-http
6683 Reported-by: Dan Fandrich
6685 - fuzz/README: document how to build
6689 - [Frederik B brought this change]
6691 fuzz: corpora file structure, initial commit
6693 - [Frederik B brought this change]
6695 fuzz: bring oss-fuzz initial code converted to C89
6697 - http-proxy: only attempt FTP over HTTP proxy
6699 ... all other non-HTTP protocol schemes are now defaulting to "tunnel
6700 trough" mode if a HTTP proxy is specified. In reality there are no HTTP
6701 proxies out there that allow those other schemes.
6703 Assisted-by: Ray Satiro, Michael Kaufmann
6707 - TODO: the generated include file is gone
6709 ... since commit 73a2fcea0b
6711 - curl_setup.h: error out on CURL_WANTS_CA_BUNDLE_ENV use
6713 ... to make it really apparent if there's any user using this on purpose.
6715 Suggested-by: Jay Satiro
6719 - lib/curl_setup.h: remove CURL_WANTS_CA_BUNDLE_ENV
6721 When this define was set, libcurl would check the environment variable
6722 named CURL_CA_BUNDLE at run-time and use that CA cert bundle. This
6723 feature was only defined by the watcom and m32 makefiles and caused
6724 inconsistent behaviours among libcurls built on different platforms.
6726 The curl tool does already feature its own similar logic and the library
6727 does not really need it, and it isn't documented libcurl behavior. So
6728 this change removes it.
6732 - test1147: verify -H on a file
6734 - curl: allow --header and --proxy-header read from file
6736 So many headers can be provided as @filename.
6738 Suggested-by: Timothe Litt
6742 - RELEASE-NOTES: synced with 2ad80eec5
6744 - curl/curlver.h: start working on 7.55.0
6746 - http-proxy: do the HTTP CONNECT process entirely non-blocking
6748 Mentioned as a problem since 2007 (8f87c15bdac63) and of course it
6749 existed even before that.
6753 - progress: let "current speed" be UL + DL speeds combined
6756 Reported-by: Paul Harris
6759 Marcel Raad (14 Jun 2017)
6760 - system.h: fix MinGW build
6762 CURLSYS_PULL_WS2TCPIP_H got renamed to CURL_PULL_WS2TCPIP_H in commit
6763 73a2fcea0b4adea6ba342cd7ed1149782c214ae3.
6765 Daniel Stenberg (14 Jun 2017)
6766 - timers: store internal time stamps as time_t instead of doubles
6768 This gives us accurate precision and it allows us to avoid storing "no
6769 time" for systems with too low timer resolution as we then bump the time
6770 up to 1 microsecond. Should fix test 573 on windows.
6772 Remove the now unused curlx_tvdiff_secs() function.
6774 Maintains the external getinfo() API with using doubles.
6778 - dist: make the hugehelp.c not get regenerated unnecessarily
6780 The maketgz script now makes sure the generated hugehelp.c file in the
6781 tarball is newer than the generated curl.1 man page, so that it doesn't
6782 have to get unnecessarily rebuilt first thing in a typical build. It
6783 thus also removes the need for perl to build off a plain release
6788 - includes: remove curl/curlbuild.h and curl/curlrules.h
6790 Rely entirely on curl/system.h now.
6792 Introduced in Aug 2008 with commit 14240e9e109f. Now gone.
6796 Version 7.54.1 (14 Jun 2017)
6798 Daniel Stenberg (14 Jun 2017)
6801 Dan Fandrich (13 Jun 2017)
6802 - mk-lib1521.pl: updated to match the test changes in 916ec30a
6804 Daniel Stenberg (13 Jun 2017)
6805 - [Stuart Henderson brought this change]
6807 libressl: OCSP and intermediate certs workaround no longer needed
6809 lib/vtls/openssl.c has a workaround for a bug with OCSP responses signed
6810 by intermediate certs, this was fixed in LibreSSL in
6811 https://github.com/libressl-portable/openbsd/commit/912c64f68f7ac4f225b7d1fdc8fbd43168912ba0
6813 Bug: https://curl.haxx.se/mail/lib-2017-06/0038.html
6815 - url: fix buffer overwrite with file protocol (CVE-2017-9502)
6817 Bug: https://github.com/curl/curl/issues/1540
6818 Advisory: https://curl.haxx.se/docs/adv_20170614.html
6820 Assisted-by: Ray Satiro
6821 Reported-by: Marcel Raad
6823 - urlglob: fix division by zero
6825 The multiply() function that is used to avoid integer overflows, was
6826 itself reason for a possible division by zero error when passed a
6827 specially formatted glob.
6829 Reported-by: GwanYeong Kim
6831 - configure: update the copyright year in the output
6833 - [ygrek brought this change]
6835 BINDINGS: update SP-Forth and OCaml urls
6837 Michael Kaufmann (11 Jun 2017)
6838 - FindWin32CACert: Use a temporary buffer on the stack
6840 Don't malloc() the temporary buffer, and use the correct type:
6841 SearchPath() works with TCHAR, but SearchPathA() works with char.
6842 Set the buffer size to MAX_PATH, because the terminating null byte
6843 is already included in MAX_PATH.
6845 Reviewed-by: Daniel Stenberg
6846 Reviewed-by: Marcel Raad
6850 Dan Fandrich (11 Jun 2017)
6851 - test1521: fixed OOM handling
6853 Daniel Stenberg (9 Jun 2017)
6854 - RELEASE-PROCEDURE: updated future release dates
6856 - [Paul Harris brought this change]
6858 gitignore: ignore all vim swap files
6862 - lib1521: fix compiler warnings on the use of bad 'long' values
6864 Reported-by: Marcel Raad
6865 Bug: https://github.com/curl/curl/commit/cccac4fb2b20d6ed87da7978408c3ecacc464fe4#commitcomment-22453387
6867 - setopt: check CURLOPT_ADDRESS_SCOPE option range
6869 ... and return error instead of triggering an assert() when being way
6872 Jay Satiro (8 Jun 2017)
6873 - [TheAssassin brought this change]
6875 cmake: Fix inconsistency regarding mbed TLS include directory
6877 Previously, one had to set MBEDTLS_INCLUDE_DIR to make CMake find the
6878 headers, but the system complained that mbed TLS wasn't found due to
6879 MBEDTLS_INCLUDE_DIRS (note the trailing s) was not set. This commit
6880 attempts to fix that.
6882 Closes https://github.com/curl/curl/pull/1541
6884 Daniel Stenberg (8 Jun 2017)
6885 - [Ryuichi KAWAMATA brought this change]
6887 examples/multi-uv.c: fix deprecated symbol
6891 - asyn-ares: s/Curl_expire_latest/Curl_expire
6893 - expire: remove Curl_expire_latest()
6895 With the introduction of expire IDs and the fact that existing timers
6896 can be removed now and thus never expire, the concept with adding a
6897 "latest" timer is not working anymore as it risks to not expire at all.
6899 So, to be certain the timers actually are in line and will expire, the
6900 plain Curl_expire() needs to be used. The _latest() function was added
6901 as a sort of shortcut in the past that's quite simply not necessary
6904 Follow-up to 31b39c40cf90
6906 Reported-by: Paul Harris
6910 - [Chris Carlmar brought this change]
6912 configure: fix link with librtmp when specifying path
6914 Bug: https://curl.haxx.se/mail/lib-2017-06/0017.html
6916 - file: make speedcheck use current time for checks
6918 ... as it would previously just get the "now" timestamp before the
6919 transfer starts and then not update it again.
6923 - metalink: remove unused printf() argument
6925 - travis: let some builds *not* use --enable-debug
6927 typecheck-gcc and other things require optimized builds
6931 - README.md: show the coverall coverage on github
6933 - lib1521: fix compiler warnings
6935 - test1521: make the code < 80 columns wide
6937 - test1121: use stricter types to work with typcheck-gcc
6939 - typecheck-gcc: allow CURLOPT_STDERR to be NULL too
6941 - test1521: test *all* curl_easy_setopt options
6943 mk-lib1521.pl generates a test program (lib1521.c) that calls
6944 curl_easy_setopt() for every known option with a few typical values to
6945 make sure they work (ignoring the return codes).
6947 Some small changes were necessary to avoid asserts and NULL accesses
6950 The perl script needs to be manually rerun when we add new options.
6954 Dan Fandrich (5 Jun 2017)
6955 - test1538: added "verbose logs" keyword
6957 These error messages are not displayed with --disable-verbose
6959 Daniel Stenberg (5 Jun 2017)
6960 - test1262: verify ftp download with -z for "if older than this"
6962 Marcel Raad (5 Jun 2017)
6963 - curl_ntlm_core: use Curl_raw_toupper instead of toupper
6965 This was the only remaining use of toupper in the entire source code.
6967 Suggested-by: Daniel Stenberg
6969 Daniel Stenberg (4 Jun 2017)
6970 - RELEASE-NOTES: synced with 65ba92650