Changes
Changes
Changes
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Changelog
Closes #3530
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Fix grammatical errors making the document read better. Also fixes
a typo.
Closes #3525
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Fixes #3518
Closes #3522
At the top, perl is called using with the "-Isrcdir" option, and it
works:
https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L183
But on line 3868, that option is omitted. This caused problems for me,
as the symbol-scan.pl script in particular couldn't find its
dependencies properly:
https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L3868
Closes https://github.com/curl/curl/pull/3496
If the incoming len 5, but the buffer does not have a termination
after 5 bytes, the strtol() call may keep reading through the line
buffer until is exceeds its boundary. Fix by ensuring that we are
using a bounded read with a temporary buffer on the stack.
Bug: https://curl.haxx.se/docs/CVE-2019-3823.html
Reported-by: Brian Carpenter (Geeknik Labs)
CVE-2019-3823
Bug: https://curl.haxx.se/docs/CVE-2019-3822.html
Reported-by: Wenxiang Qian
CVE-2019-3822
Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
Reported-by: Wenxiang Qian
CVE-2018-16890
Fixes https://github.com/curl/curl/issues/3503
Closes https://github.com/curl/curl/pull/3509
To make sure Curl_timeleft() also thinks the timeout has been reached
when one of the EXPIRE_*TIMEOUTs expires.
Bug: https://curl.haxx.se/mail/lib-2019-01/0073.html
Reported-by: Zhao Yisha
Closes #3501
Use an ephemeral port number here; previously the example had 8080
which could be confusing as the common web server port number might
be misinterpreted as suggesting this option affects the remote port.
URL: https://curl.haxx.se/mail/lib-2019-01/0084.html
Closes #3513
Closes https://github.com/curl/curl/issues/2262
Closes #3502
Compiling with msvc /analyze and a recent Windows SDK warns against
using GetTickCount (Suggests to use GetTickCount64 instead.)
Fixes https://github.com/curl/curl/issues/3437
Closes https://github.com/curl/curl/pull/3440
Fixes #3493
Closes #3494
This approach is very similar to what is done in the libssh2 code, where
the socket created by curl is passed to libssh2 when
libssh2_session_startup() is called.
Fixes #3491
Closes #3495
- RELEASE-NOTES: synced
Fixes #3480
Closes #3487
- KNOWN_BUGS: tests not compatible with python3
Closes #3289
[skip ci]
Closes #3486
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
[skip ci]
Closes #3484
Fixes #3280
Closes #3321
ssh: log the libssh2 error message when ssh session startup fails
Closes #3481
Fixes #3474
Closes #3479
.... to not pass in a const in the second argument as that's not how it
is supposed to be used and might cause compiler warnings.
[skip ci]
Closes #3473
Since they're used purely for testing purposes, I think they should
rather be stored there.
Closes #3470
Closes #3469
Ref: https://zlib.net/DLL_FAQ.txt
Fixes https://github.com/curl/curl/issues/3133
Closes https://github.com/curl/curl/pull/3460
Make sure that this function sets a proper "live" transfer for the
connection before calling the protocol-specific connection check
function, and then clear it again afterward as a non-used connection has
no current transfer.
Closes #3462
Closes #3442
Reported-by: Peng Li
Fixes #3456
Closes #3458
Closes #3125
Closes #3229
See https://github.com/curl/curl/issues/3453#issuecomment-453054458
- RELEASE-NOTES: synced
Fixes #3423
Closes #3433
Fixes #3436
Closes #3448
Problem 1
After LOTS of scratching my head, I eventually realized that even when doing
10 uploads in parallel, sometimes the socket callback to the application that
tells it what to wait for on the socket, looked like it would reflect the
status of just the single transfer that just changed state.
Digging into the code revealed that this was indeed the truth. When multiple
transfers are using the same connection, the application did not correctly get
the *combined* flags for all transfers which then could make it switch to READ
(only) when in fact most transfers wanted to get told when the socket was
WRITEABLE.
Problem 1b
Fix 1
Make sure that each socket stored in the socket hash has a "combined" action
field of what to ask the application to wait for, that is potentially the ORed
action of multiple parallel transfers. And remove that socket hash entry only
if there are no transfers left using it.
Problem 2
The socket hash entry stored an association to a single transfer using that
socket - and when curl_multi_socket_action() was called to tell libcurl about
activities on that specific socket only that transfer was "handled".
Fix 2
We now store a list of handles in the socket hashtable entry and when libcurl
is told there's traffic for a particular socket, it now iterates over all
known transfers using that single socket.
[skip ci]
Closes #3417
[skip ci]
Bug: https://curl.haxx.se/mail/lib-2018-12/0088.html
Closes #3449
Closes #3443
- RELEASE-NOTES: synced
Closes #3428
Fixes #3371
This also reopens PR #3275 which brought the change now reverted.
Fixes #3384
Closes #3439
Starting with Visual Studio 2017 Update 9, Visual Studio doesn't like
the MinimalRebuild option anymore and warns:
cl : Command line warning D9035: option 'Gm' has been deprecated and
will be removed in a future release
Closes https://github.com/curl/curl/pull/3425
When building with Unicode on MSVC, the compiler warns about freeing a
pointer to const in Curl_unicodefree. Fix this by declaring it as
non-const and casting the argument to Curl_convert_UTF8_to_tchar to
non-const too, like we do in all other places.
Closes https://github.com/curl/curl/pull/3435
Closes #3426
Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
Reported-by: Shlomi Fish
Reviewed-by: Daniel Gustafsson
Reviewed-by: Kamil Dudka
Closes #3434
Add a few missing examples to make `make examples` not leave the
workspace in a dirty state.
Closes #3427
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Add Adrian Burcea who made the artwork for the curl://up 2018 event
which was held in Stockholm, Sweden.
Closes #3424
Reported-by: dnivras on github
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
NTLM2 did not work i.e. no NTLMv2 response was created. Changing the
check seems to work.
Ref: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-
NLMP/[MS-NLMP].pdf
Fixes https://github.com/curl/curl/issues/3286
Closes https://github.com/curl/curl/pull/3287
Closes https://github.com/curl/curl/pull/3415
The previous fix for parsing IPv6 URLs with a zone index was a paddle
short for URLs without an explicit port. This patch fixes that case
and adds a unit test case.
This bug was highlighted by issue #3408, and while it's not the full
fix for the problem there it is an isolated bug that should be fixed
regardless.
Closes #3411
Reported-by: GitYuanQu on github
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3406
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3410
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
The DCL code had a typo in one of the commands which would make the
OpenSSL discovery on VAX fail. The correct syntax is F$ENVIRONMENT.
Closes #3407
Reviewed-by: Viktor Szakats <commit@vszakats.net>
cmake: use lowercase for function name like the rest of the code
closes #3196
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12173
Fixes #3402
Closes #3403
- RELEASE-NOTES: synced
For now, both the tool and library allow HTTP/0.9 by default.
docs/DEPRECATE.md lays out the plan for when to reverse that default: 6
months after the 7.64.0 release. The options are added already now so
that applications/scripts can start using them already now.
Fixes #2873
Closes #3383
Closes #3401
Fixes #3392
Closes #3399
This adds a cleanup callback for cyassl. Resolves possible memory leak
when using ECC fixed point cache.
Closes #3395
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Fixes #3376
Closes #3390
Closes #2964
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3388
Fixes #3264
Closes #3374
Closes #3354
- RELEASE-NOTES: synced
The test server (sws) was updated to take into account the detection of the
end of transfer in the case of trailing headers presence.
Test 1591 checks that trailing headers can be sent using libcurl.
Closes #3350
After the migration to URL API all octets in the selector after the
first `?' were interpreted as query and accidentally discarded and not
passed to the server.
Fixes #3369
Closes #3370
- [Leonardo Taccari brought this change]
If just a `?' to indicate the query is passed always store a zero length
query instead of having a NULL query.
Fixes #3369
Closes #3370
Closes #3372
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #2956
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3368
A URL with a single colon without a portnumber should use the default
port, discarding the colon. Fix, add a testcase and also do little bit
of comment wordsmithing.
Closes #3365
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
... when not actually following the redirect. Otherwise we return error
for this and an application can't extract the value.
The time_t type is unsigned on some systems and these variables are used
to hold return values from functions that return timediff_t
already. timediff_t is always a signed type.
Closes #3363
... where "last release" should be the git tag in the repo.
Closes #3355
Closes #3319
Reported-by: tonystz on Github
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Fixes https://github.com/curl/curl/issues/3353
Closes #3356
The http status code 204 (No Content) should not change the "condition
unmet" flag. Only the http status code 304 (Not Modified) should do
this.
Closes #359
Closes #3362
- RELEASE-NOTES: synced
Closes #3349
URL: https://curl.haxx.se/mail/lib-2018-11/0055.html
Closes #3347
Since v7.62.0, cURL tries to use HTTP/2 whenever the server announces
the capability. However, NTLM authentication only works with HTTP/1.1,
and will likely remain in that boat (for details, see
https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-
iis#when-is-http2-not-supported).
When we just found out that we want to use NTLM, and when the current
connection runs in HTTP/2 mode, let's force the connection to be closed
and to be re-opened using HTTP/1.1.
Fixes https://github.com/curl/curl/issues/3341.
Closes #3345
Closes #3346
This subdir has mostly become an attic of never-used cruft from the
past.
Closes #3331
Moves the file handling BIO calls to the branch of the code where they
are actually used.
Closes #3339
NSS may be built without support for the latest SSL/TLS versions,
leading to "SSL version range is not valid" errors when the library
code supports a recent version (e.g. TLS v1.3) but it has explicitly
been disabled.
Fixes #3261
Forgetting to bump the year in the copyright clause when hacking has
been quite common among curl developers, but a traditional checksrc
check isn't a good fit as it would penalize anyone hacking on January
1st (among other things). This adds a more selective COPYRIGHTYEAR
check which intends to only cover the currently hacked on changeset.
The check for updated copyright year is currently not enforced on all
files but only on files edited and/or committed locally. This is due to
the amount of files which aren't updated with their correct copyright
year at the time of their respective commit.
Closes #3303
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3335
[ci skip]
- RELEASE-NOTES: synced
Closes #3311
- curl: fix memory leak reading --writeout from file
If another string had been set first, the writout function for reading
the syntax from file would leak the previously allocated memory.
Closes https://github.com/curl/curl/pull/3323
Closes https://github.com/curl/curl/pull/3316
Closes #3317
And include the other libraries when compiling SSL_LIBS succeeds with:
Closes #3304
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Daniel Stenberg (25 Nov 2018)
- RELEASE-NOTES: synced
Important for when the file is going to be read again and thus must not
contain old contents!
- checksrc: ban snprintf use, add command line flag to override warns
The function does not return the same value as snprintf() normally does,
so readers may be mislead into thinking the code works differently than
it actually does. A different function name makes this easier to detect.
The tests 20 and 1322 are using getaddrinfo of libc for resolving. In
eglibc-2.19 there is a memory leakage and invalid free bug which
surfaces in some special circumstances (PF_UNSPEC hint with invalid or
non-existent names). The valgrind runs in testing fail in these
situations.
Fixes #3022
Closes #3222
Closes #3295
Use OpenSSL's "new session" callback to get the session information and put it
into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
after the server has sent a session ticket.
A pointer to the connection data and the sockindex are now saved as "SSL extra
data" to make them available to the callback.
This approach also works for old SSL/TLS versions and old OpenSSL versions.
Fixes #3202
Closes #3271
Closes #3266
Since we're close to feature freeze, this change disables this feature
with an #ifdef. Define ALLOW_RENEG at build-time to enable.
ares: remove fd from multi fd set when ares is about to close the fd
When using c-ares for asyn dns, the dns socket fd was silently closed
by c-ares without curl being aware. curl would then 'realize' the fd
has been removed at next call of Curl_resolver_getsock, and only then
notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
CURL_POLL_REMOVE. At this point the fd is already closed.
Closes #3238
#ifdef USE_OPENSSL
# ifdef USE_OPENSSL
# else
# ..
# endif
#endif
Remove the redundant USE_OPENSSL along with #else (it's not possible to
reach it anyway). The removed construction is a leftover from when the
SSLeay support was removed.
Closes #3269
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3291
The license for the impacket package was not in our tree.
Closes #3254
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Closes #3270
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3275
openssl: do not log excess "TLS app data" lines for TLS 1.3
Closes https://github.com/curl/curl/pull/3281
The default changes were made with stunnel 5.34 and 5.35.
Closes #3262
Fixes #3261
Closes #3263
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Reviewed-by: Viktor Szakats <commit@vszakats.net>
The overflow has no real world impact, just avoid it for "best
practice".
Closes #3225
The end port number in a given range was not included in the range used,
as it is documented to be.
1 - https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md#tls-
renegotiation
2 - https://boringssl.googlesource.com/boringssl/
+/master/include/openssl/ssl.h#3482
3 - https://boringssl.googlesource.com/boringssl/
+/1d5ef3bb1eb97848617db5e7d633d735a401df86
Added a few of the more notable milestones in curl history that were
missing. Primarily more recent ones but I also noted some older that
could be worth mentioning.
[ci skip]
Closes #3257
Add the identified issue with --proxy-any and proxy servers which
advertise authentication schemes other than the supported one.
Closes #876
Closes #3250
Reported-by: NTMan on Github
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3227
Closes #3246
Regression by 52db54869e6.
Closes #3115
Closes #3243
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
- urlapi: only skip encoding the first '=' with APPENDQUERY set
APPENDQUERY + URLENCODE would skip all equals signs but now it only skip
encoding the first to better allow "name=content" for any content.
Also fixed test203 to use file_pwd to make it get the correct path on
windows. Removed test 2070 since it was a duplicate of 203.
In the transfer loop it would previously not acknwledge the pause bit
and continue until drained or loop ended.
Closes #3240
Ref: https://github.com/curl/curl/pull/3103
Closes https://github.com/curl/curl/pull/3208
Prior to this change twice as many bytes as necessary were malloc'd when
converting wchar to UTF8. To allay confusion in the future I also
changed the variable name for the amount of bytes from len to bytes.
Closes https://github.com/curl/curl/pull/3209
Fixes #3213
Closes #3224
Fixes #3211
Fixes #3175
Closes #3212
Closes #3199
The previous coding used a format string whose output depended on the
current locale of the environment running the test. Since the gist of
the test is to have a format string, with the actual formatting being
less important, switch to a more stable formatstring with decimals.
This appends a "...\n" (or just "..." in case the format didn't with a
newline char) marker to the end of the string to clearly show
that it has been truncated.
Also include a unittest covering infof() to try and catch any bugs
introduced in this quite important function.
Closes #3216
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
The function identifying a leading "scheme" part of the URL considered a few
letters ending with a colon to be a scheme, making something like "short:80"
to become an unknown scheme instead of a short host name and a port number.
on Linux. To make sure the test suite runs with its newly build tool and
doesn't require an external one present.
Bug: #3198
Closes #3200
When not actually following the redirect and the target URL is only
stored for later retrieval, curl always accepted "non-supported"
schemes. This was a regression from 46e164069d1a5230.
Closes #3217
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Viktor Szakats <commit@vszakats.net>
Closes #3207
- axtls: removed
As has been outlined in the DEPRECATE.md document, the axTLS code has
been disabled for 6 months and is hereby removed.
Closes #3197
Closes #3190
Closes #3201
Closes #3204
Closes #3195
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3191
CVE-2018-16842
Reported-by: Brian Carpenter
Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
Closes #3123
Detected by UndefinedBehaviorSanitizer
Closes #3187
Closes #3182
CVE-2018-16839
Reported-by: Harry Sintonen
Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
system.h selects the proper Sun settings when __SUNPRO_C is defined. The
Sun compiler does not define it when compiling C++ files. I'm adding a
check also on __SUNPRO_CC to allow curl to work properly also when used
in a C++ project on Sun Solaris.
Closes #3181
The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
Closes #3163
See: https://curl.haxx.se/mail/lib-2018-10/0107.html
Ref: https://github.com/curl/curl/pull/3163
Reported-By: Daniel Stenberg
Closes #3170
When failing to set the 1.3 cipher suite, the wrong string pointer would
be used in the error message. Most often saying "(nil)".
Closes https://github.com/curl/curl/pull/2958
Closes #3179
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
... I'm moving it up one week due to travels. The rest stays.
Closes #3176
Detected by clang-tidy
Closes #3176
Fixes #3171
Closes #3172
Follow-up to #3166 which did the cmake part of this. This type/define is
not used.
Closes #3168
Remove variables:
* HAVE_SOCKLEN_T
* CURL_SIZEOF_CURL_SOCKLEN_T
* CURL_TYPEOF_CURL_SOCKLEN_T
Closes #3166
- Change the inout parameters after all needed memory has been
allocated. Do not change them if something goes wrong.
- Free the allocated temporary strings if strdup() fails.
Closes #3122
Closes #3162
- RELEASE-NOTES: synced
Closes #3153
Closes #3158
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Retract the previous approach as the sponsors will be the ones to set the
final amounts.
Closes #3152
[ci skip]
This bug was introduced with the use of the URL API internally, it has
never been in a release version
The Visual Studio builds didn't use IPv6. Add it to all projects since
Visual Studio 2008, which is verified to build via AppVeyor.
Closes https://github.com/curl/curl/pull/3137
Closes https://github.com/curl/curl/pull/3137
Closes #3144
Detected by Coverity.
Closes #3140
Reviewed-by: Jay Satiro
The issue only affects libcurl with GSKit SSL, not other SSL backends.
The issue is not a security issue as IP verification would always fail.
Fixes #3102
Closes #3141
Closes #3134
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3124
Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
Ref: https://news.ycombinator.com/item?id=18202481
Closes https://github.com/curl/curl/pull/3131
[ci skip]
Closes #3126
Closes #3121
Closes https://github.com/curl/curl/pull/3120
Ref: https://github.com/curl/curl/pull/878/files#diff-
7a636f08047c4edb53a240f540b4ecf6R468
Closes https://github.com/curl/curl/pull/3118
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
Closes https://github.com/curl/curl/pull/3113
Closes https://github.com/curl/curl/pull/3113
Closes #3112
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes https://github.com/curl/curl/pull/3114
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
... when they return NULL we're out of memory and MUST return failure.
closes #3111
Closes #3067
Closes #3110
Now FILE transfers send headers to the header callback like HTTP and
other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
work for FILE in the callbacks.
In case a very small buffer was passed to the version function, it could
result in the buffer not being NULL-terminated since strncpy() doesn't
guarantee a terminator on an overflowed buffer. Rather than adding code
to terminate (and handle zero-sized buffers), move to using snprintf()
instead like all the other vtls backends.
Closes #3105
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Viktor Szakats <commit@vszakats.net>
Fixes #2394
Closes #3106
Reported-by: Github user @jakirkham
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes https://github.com/curl/curl/pull/3104
Closes https://github.com/curl/curl/pull/3104
Closes https://github.com/curl/curl/pull/3104
Closes https://github.com/curl/curl/pull/3104
- AppVeyor: break long line
Closes https://github.com/curl/curl/pull/3104
Closes https://github.com/curl/curl/pull/3104
To make it only send one DoH request and avoid the race condition that
could lead to the requests getting sent in reversed order and thus
making it hard to compare in the test case.
Fixes #3107
Closes #3108
[ci skip]
- RELEASE-NOTES: synced
Closes #3048
Ideally this will fix the reversed order shown in SPARC tests:
Closes #3091
Closes #3099
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3096
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Enable strict and warnings mode for checksrc to ensure we aren't missing
anything due to bugs in the checking code. This uncovered a few things
which are all fixed in this commit:
Closes #3090
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Closes #3097
Closes https://github.com/curl/curl/pull/3100
CMake's default has spaces and in 32-bit mode parentheses, which result
in syntax errors in curl-config.
Closes https://github.com/curl/curl/pull/3100
- AppVeyor: Remove non-SSL non-test builds
Closes https://github.com/curl/curl/pull/3100
Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
Closes https://github.com/curl/curl/pull/3100
Closes https://github.com/curl/curl/pull/3100
Closes #3092
To make the test case work with different gnutls-serv versions better.
Fixes #2929
Closes #3080
Closes #3084
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Ensure that the parameters in the comment match the actual names in the
prototype.
Closes #3079
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
already done in all but a few cases. Also fix a few typos.
Closes #3076
Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Use proper Markdown hyperlink format for the Bountygraph links in order
for the generated website page to be more user friendly. Also link to
the sponsors to give them a little extra credit.
Closes #3082
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
Reported-by: Maxime Legros
Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
Closes https://github.com/curl/curl/pull/3086
Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
Closes https://github.com/curl/curl/pull/3085
Marcel Raad (2 Oct 2018)
- test1299: use single quotes around asterisk
Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
Bug: #3077
Closes #3075
... and libcurl doesn't support any single-letter URL schemes (if there
even exist any) so it should be fairly risk-free.
Fixes #3070
Closes #3071
Meaning:
* Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
* User should call 'find_package(CURL)' instead of 'find_package(curl)'
Closes https://github.com/curl/curl/pull/2849
Closes #3069
The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
of HTTP for use with DoH".
Credit to OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
Closes #3063
Closes #3062
Backport the logic to work with CMake 3.0 again by implementing the
fix only when the version of CMake is at least 3.4.
[0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-
release/tree/mingwrt/include/process.h#l167
[1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-
release/tree/mingwrt/include/process.h#l90
Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
Closes https://github.com/curl/curl/pull/3051
Fixes #3006
Closes #3049
Closes #3050
- RELEASE-NOTES: synced
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
Closes #3046
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
Closes #3044
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
Closes #3042
Fixes: https://github.com/curl/curl/issues/3026
Signed-off-by: Christian Heimes <christian@python.org>
Closes https://github.com/curl/curl/pull/3027
Closes #3039
Closes https://github.com/curl/curl/pull/3038
- whitespace fixes
Closes https://github.com/curl/curl/pull/3037
Closes #3034
Fixes #2987
Closes #3035
Closes https://github.com/curl/curl/pull/3036
also:
- fix two warnings in synctime.c (one of them Windows-specific)
- upgrade URLs in synctime.c and remove a broken one
Closes https://github.com/curl/curl/pull/3033
Closes #3030
Closes #3032
Closes #3017
Closes https://github.com/curl/curl/pull/3031
When trying to detect pthreads use on HPUX the checks will succeed
without the correct -l option but then end up failing at run-time.
Closes #3029
Closes #3024
Closes #2971
Removed DoH.
Closes #2734
Fixes https://github.com/curl/curl/issues/2969
Closes https://github.com/curl/curl/pull/3012
Closes #3014
In order for this API to fully work for libcurl itself, it now offers a
CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
name prefix just like libcurl always did. If there's no known prefix, it
will guess "http://".
Separately, it relaxes the check of the host name so that IDN host names
can be passed in as well.
Both these changes are necessary for libcurl itself to use this API.
Closes #3016
Closes #3015
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #3013
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
User must have OpenSSL installed even if not used by libcurl at all
since 7.61.1 release. Broken at
7867aaa9a01decf93711428462335be8cef70212
Fixes #2996
Closes #3000
Closes #3004
The reallocation was using the input pointer for the return value, which
leads to a memory leak on reallication failure. Fix by instead use the
safe internal API call Curl_saferealloc().
Closes #3005
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
Closes #2999
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #2994
... so that they can clear the original pointer on failure, which makes
the error-paths and their cleanups easier.
Closes #2992
Closes #2998
Closes #2989
Fixes #2983
Closes #2988
The failf() macro is the name used for invoking Curl_failf(). While
there isn't a way to turn off failf like there is for infof, but it's
still a good idea to use the macro.
Closes #2986
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #2985
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
When erroring out on a request being too large, the existing buffer was
leaked. Fix by explicitly freeing on the way out.
Closes #2966
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes #2984
This yields
instead of
Closes #2970
Fixes #2763
Closes #2977
The previous test certificates contained RSA keys of only 1024 bits.
However, RSA claims that 1024-bit RSA keys are likely to become
crackable some time before 2010. The NIST recommends at least 2048-bit
keys for RSA for now.
Closes #2973
On Windows, the read function from <io.h> is used, which has its byte
count parameter as unsigned int instead of size_t.
Closes https://github.com/curl/curl/pull/2972
Closes https://github.com/curl/curl/pull/2979
Closes https://github.com/curl/curl/issues/2980
Closes #2967
This example is simply not working correctly but there's nobody around
with the skills and energy to fix it.
Closes #2407
Closes #2955
Closes #2948
Closes #2963
Closes #2957
closes #2962
Exit the realloc() loop if the response turns out ridiculously large to
avoid worse problems.
Closes #2960
- RELEASE-NOTES: synced
See header file and man pages for API. All documented API details work
and are tested in the 1560 test case.
Closes #2842
Fixes #2951
Closes #2952
Closes #1641
Fixes #2724
Closes #2791
The gcc typecheck macros and coverity combined made it warn on the 2nd
argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
Fixes #2789
Closes #2815
Fixes #2888
Closes #2896
Closes #2668
Failure to extract the issuer name from the server certificate should
return a more specific error code like on other TLS backends.
Closes #2901
- [Han Han brought this change]
Closes #2901
- CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
Closes #2942
Closes #2709
Closes #2941
- pipelining: deprecated
See docs/DEPRECATE.md
Closes #2705
- RELEASE-NOTES: 7.61.1
Fixes #2939
Closes #2940
Closes #2936
- Treat 408 request timeout as transient so that curl will retry the
request if --retry was used.
Closes #2925
The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
missing.
Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
Reported-by: Kamil Dudka
Closes #2926
... since it would cause an integer overflow if longer than (max size_t
/ 2).
This is CVE-2018-14618
Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
Closes #2756
Reported-by: Zhaoyang Wu
Closes #2928
Marcel Raad (2 Sep 2018)
- test1148: fix precheck output
Closes #2922
Closes #2524
Use the original POSIX path instead of the Windows path created in
checksystem to fix this.
Closes https://github.com/curl/curl/pull/2920
Closes https://github.com/curl/curl/issues/2916
- RELEASE-NOTES: synced
- CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
Added a warning!
Closes #2915
follow-up to a7ba60bb7250
As uintptr_t and HANDLE are always the same size, this warning is
harmless. Just silence it using an intermediate uintptr_t variable.
Closes https://github.com/curl/curl/pull/2908
Closes #2913
Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
Closes #2909
Since GOPHER support was added in curl `?' character was automatically
translated to `%09' (`\t').
However, this behaviour does not seems documented in RFC 4266 and for
search selectors it is documented to directly use `%09' in the URL.
Apart that several gopher servers in the current gopherspace have CGI
support where `?' is used as part of the selector and translating it to
`%09' often leads to surprising results.
Closes #2910
- RELEASE-NOTES: synced
When Curl_http2_done() gets called before the http2 data is setup all
the way, we cannot send anything and this should just return an error.
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
Closes #2903
- x509asn1: use FALLTHROUGH
Modifying the locale with environment variables doesn't work for native
Windows applications. Just disable the test in this case if the decimal
separator is something different than a point. Use a precheck with a
small C program to achieve that.
Closes https://github.com/curl/curl/pull/2786
Closes https://github.com/curl/curl/pull/2747
Closes https://github.com/curl/curl/pull/2747
This warning used to be enabled only for clang as it's a bit stricter
on GCC. Silence the remaining occurrences and enable it on GCC too.
Closes https://github.com/curl/curl/pull/2747
[0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
[1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-
warning-messages
[2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
Closes https://github.com/curl/curl/pull/2747
- Remove unused definitions
Closes https://github.com/curl/curl/pull/2747
and remove the private SIZE_T_MAX define and use the generic one.
Closes #2902
Fixes #2894
Closes #2898
... for extracting certs from a live HTTPS server to make a cacerts.pem
from them.
- RELEASE-NOTES: synced
Part 2 of #2888
Closes #2892
Saves 16KB on the easy handle for operations that don't need that
buffer.
Part 1 of #2888
Handles created with curl_easy_duphandle do not use the SSL engine set
up in the original handle. This fixes the issue by storing the engine
name in the internal url state and setting the engine from its name
inside curl_easy_duphandle.
If this is the last stream on this connection, the RST_STREAM might not
get pushed to the wire otherwise.
Fixes #2882
Closes #2887
Researched-by: Michael Kaufmann
Follow-up to 099f37e9c57
This struct field is never set TRUE in any existing code path. This
change removes the field completely.
Closes #2871
- curl: warn the user if a given file name looks like an option
... simply because this is usually a sign of the user having omitted the
file name and the next option is instead "eaten" by the parser as a file
name.
Closes #2885
Closes #2880
Closes #2886
- RELEASE-NOTES: synced
CMake: CMake config files are defining CURL_STATICLIB for static builds
This change allows to use the CMake config files generated by Curl's
CMake scripts for static builds of the library.
The symbol CURL_STATIC lib must be defined to compile downstream,
thus the config package is the perfect place to do so.
Fixes #2817
Closes #2823
Reported-by: adnn on github
Reviewed-by: Sergei Nikulov
Bug: https://bugzilla.redhat.com/1595135
Closes #2879
The verbose message "Authentication using SSH public key file" was
printed each time the ssh_userauth_publickey_auto() was called, which
meant each time a packet was transferred over network because the API
operates in non-blocking mode.
This patch makes sure that the verbose message is printed just once
(when the authentication state is entered by the SSH state machine).
Closes #2876
Closes https://github.com/curl/curl/pull/2869
Fixes #2420
Closes #2872
Closes #2856
Split off testing file names with double quotes into new test 1158.
Disable it for MSYS using a precheck as it doesn't support file names
with double quotes (but Cygwin does, for example).
Fixes https://github.com/curl/curl/issues/2796
Closes https://github.com/curl/curl/pull/2854
Prior to this change detection was done by checking the PATH for perl/
but that did not work in all cases (eg git install includes perl but
not in perl/ path).
Bug: https://github.com/curl/curl/pull/2865
Reported-by: Daniel Jeliński
Closes https://github.com/curl/curl/pull/2868
[0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
Closes https://github.com/curl/curl/pull/2860
Reported-by: cjmsoregan
Fixes #2847
Closes #2864
Closes #2867
- RELEASE-NOTES: synced
Follow-up to 298d2565e
Coverity CID 1438387
Closes https://github.com/curl/curl/pull/2862
Fixes #2837
Closes #2858
Reported-by: Markus Elfring
Closes #2857
Closes #2853
The macro has never been used, and it there is not really any place
where it would make sense to add timing checks.
Closes #2852
Closes #2852
Closes #2852
Closes #2852
Closes #2852
Fixes #2806
Closes #2843
- RELEASE-NOTES: synced
Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
Closes #2762
Fixes #2224
This allows the use of PKCS#11 URI for certificates and keys without
setting the corresponding type as "ENG" and the engine as "pkcs11"
explicitly. If a PKCS#11 URI is provided for certificate, key,
proxy_certificate or proxy_key, the corresponding type is set as "ENG"
if not provided and the engine is set to "pkcs11" if not provided.
Closes #2753
cmake: link curl to the OpenSSL targets instead of lib absolute paths
Since it will slip and the version is the important part there, not the
date.
Turns out that since we're using the native fnmatch function now when
available, and they simply disagree on a huge number of test patterns
that make it hard to test this function like this...
Fixes #2825
Closes #2822
Closes #2818
- RELEASE-NOTES: synced
Fixes #2801
Closes #2812
Detected by OSS-fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
Fixes #2769
Closes #2810
Closes #2811
Closes https://github.com/curl/curl/pull/2808
Closes #2793
The curl binary would crash if the -H command line option was given a
filename to read using the @filename syntax but that file was empty.
Closes #2797
Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
Reported-by: Jeffrey Walton
Closes #2795
Closes #2804
Closes #2794
The statement, “The application does not have to keep the string around
after setting this option,” appears to be indented under the RTMP
paragraph. It actually applies to all protocols, not just RTMP.
Eliminate the extra indentation.
Closes #2788
Closes #2787
Closes #2784
Closes #2790
Closes https://github.com/curl/curl/pull/2792
Such a scenario happens e.g. when using Git to push to Visual Studio
Team Services (which supports Basic and Bearer authentication among
other methods) and specifying the Personal Access Token directly in the
URL (this aproach is frequently taken by automated builds).
Let's make sure that we have a Bearer token to work with before we
select the Bearer authentication among the available authentication
methods.
Closes https://github.com/curl/curl/pull/2776
Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
layer for a connection still needs a Curl_easy handle for the session_id
cache etc.
Fixes #2764
Closes #2771
Closes https://github.com/curl/curl/pull/2772
Closes #2751
Without this fix, an SMB download could easily get stuck when the event-driven
API was used.
Closes #2768
Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
Closes https://github.com/curl/curl/pull/2765
Closes #2727
Reviewed-by: Sergei Nikulov
Fixes https://github.com/curl/curl/issues/2741
Closes https://github.com/curl/curl/pull/2742
Some servers issue raw deflate data that may be followed by an undocumented
trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
before considering the data is in error.
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
Closes #2740
Closes #2733
This commit drops the version test down to 1.0.0 as version 1.0.0d
is the oldest version I have to test with.
Closes #2732
[0] https://osdn.net/projects/mingw/scm/git/mingw-org-
wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
[1] https://osdn.net/projects/mingw/ticket/38391
Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
Closes https://github.com/curl/curl/pull/2728
Apparently the C => HTML converter on the web site doesn't quite like it
otherwise.
Closes #2724
... and not the other way around, which this previously said.
Reported-by: Vasiliy Faronov
Fixes #2723
Closes #2726
Follow-up to 82ce416.
Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
MinGW warns:
/lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
Closes https://github.com/curl/curl/pull/2721
Closes https://github.com/curl/curl/pull/2721
Closes https://github.com/curl/curl/pull/2721
Fixes https://github.com/curl/curl/issues/2361
Closes https://github.com/curl/curl/pull/2721
When size_t is not a typedef for unsigned long (as usually the case on
Windows), GCC emits -Wformat warnings when using lu and lx format
specifiers with size_t. Silence them with explicit casts to
unsigned long.
Closes https://github.com/curl/curl/pull/2721
... not the read buffer size, as that can be set smaller and thus cause
a buffer overflow! CVE-2018-0500
Reported-by: Peter Wu
Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
Closes #2718
darwinssl: allow High Sierra users to build the code using GCC
...but GCC users lose out on TLS 1.3 support, since we can't weak-link
enumeration constants.
Fixes #2656
Closes #2703
Closes #2711
Fixes #2708
Closes #2712
Closes #2713
- RELEASE-NOTES: synced
- DEPRECATE: linkified
Closes #2704
Fixes #2696
Closes #2700
Closes #2698
The code treated the set version as the *exact* version to require in
the TLS handshake, which is not what other TLS backends do and probably
not what most people expect either.
- RELEASE-NOTES: synced
The previous example was a little bit confusing, because SSL* structure
(or other "in use" SSL connection pointer) is not accessible after the
transfer is completed, therefore working with the raw TLS library
specific pointer needs to be done during transfer.
Closes #2690
... since default uses the threaded one and we test the c-ares build
already.
Closes #2689
Follow-up to 0aeca41702d2
Closes #2687
Closes #2685
The linker is pretty dumb and processes things left to right, keeping a
tally of symbols it hasn't resolved yet. So, we need -ldl to appear
after -lcrypto otherwise the linker won't find the dl functions.
Closes #2684
... it was previously unchecked in two places and thus errors could
remain undetected and cause trouble.
Closes #2681
- RELEASE-NOTES: synced
... to work with longer passwords etc. Grow it from a 256 to a 4096
bytes buffer.
Closes #2673
Fixes #2677
Closes #2679
Follow-up to 2c15693.
Bug #2674
Closes #2675
Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
Closes #2665
... run a few more tortured based and run all tests event-based.
Closes #2664
When the application just started the transfer and then stops it while
the name resolve in the background thread hasn't completed, we need to
wait for the resolve to complete and then cleanup data accordingly.
Enabled test 1553 again and added test 1590 to also check when the host
name resolves successfully.
Detected by OSS-fuzz.
Closes #1968
Ref: https://github.com/curl/curl/pull/2660
Closes https://github.com/curl/curl/pull/2662
Closes #2663
- RELEASE-NOTES: synced
maketgz creates release tarballs and removes the -DEV string in curl
version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
is run. maketgz works fine on linux but fails on OSX. Problem is with
the sed commands that use option -i without an extension. Maketgz
expects GNU sed instead of BSD and this simply won't work on OSX. Adding
a backup extension .bak after -i fixes this issue
Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
building with static libs without pkg-config.
First check if there's c-ares information given as pkg-config info and use
that as first preference.
Closes #2657
Closes #2120
Closes #2281
Closes #2655
Reported-by: Peter Wu
Closes #2654
Closes #2653
- runtests: support variables in <strippart>
... and make use of that to make 1455 work better without using a fixed
local port number.
Fixes #2649
Closes #2650
The struct field is never set (since 5e0d9aea3) so remove the use of it
and remove the connectdata pointer from the prototype.
Reported-by: Tejas
Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
Closes #2647
with clang-6.0:
```
vtls/schannel_verify.c: In function 'add_certs_to_store':
vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject'
from incompatible pointer type [-Wincompatible-pointer-types]
&cert_context)) {
^
In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
from /usr/share/mingw-w64/include/schnlsp.h:9,
from vtls/schannel.h:29,
from vtls/schannel_verify.c:40:
/usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **'
but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void
*pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD
dwFlags,
^~~~~~~~~~~~~~~~
```
Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
Closes https://github.com/curl/curl/pull/2648
To use this from the commandline, you need to pass the names of contants
defining the desired algorithms. For example, curl --ciphers
"CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
https://github.com The specific names come from wincrypt.h
Closes #2630
- [Bernhard M. Wiedemann brought this change]
Closes #2646
etc
Closes #2631
Fixes #2641
Closes #2644
- RELEASE-NOTES: synced
Fixes the build problem when both boringssl and schannel are enabled.
Fixes #2634
Closes #2643
Closes #2640
Closes #2633
Also update CMakelists.txt to handle the fact that we now may have
nodist_SOURCES.
Added a section to system.h guarded with __xlc__ for the IBM xml C
compiler. Before this change the section titled 'generic "safe guess" on
old 32 bit style' was used, which resulted in a wrong definition of
CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
was wrong.
CC libcurl_la-ftp.lo
"ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
CC libcurl_la-connect.lo
"connect.c", line 448.56: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"connect.c", line 516.66: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"connect.c", line 687.55: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
"connect.c", line 696.55: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
CC libcurl_la-tftp.lo
"tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types
"unsigned long* restrict" and "int*" is not allowed.
Closes #2637
URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
This is step one. It adds #error statements that require source edits to
make curl build again if asked to use axTLS. At a later stage we might
remove the axTLS specific code completely.
Closes #2628
According to the user survey 2018, not even one out of 670 users use
them. Nobody on the mailing list spoke up for them either.
Closes #2629
... it might call infof() with a NULL first argument that isn't harmful
but makes it not do anything. The infof() line is not very useful
anymore, it has served it purpose. Good riddance!
Fixes #2627
Closes #2622
- KNOWN_BUGS: CURL_GLOBAL_SSL
Closes #2276
Closes #2624
Closes #2623
Closes #2340
* enable it in `src/Makefile.m32`
* enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
_not_ enabled via the existing `EMBED_MANIFEST` option
* enable it for all Windows CMake builds (also disable the built-in
minimal manifest, added by CMake by default.)
Closes https://github.com/curl/curl/pull/1221
Fixes https://github.com/curl/curl/issues/2591
Fixes #2435
Reported-by: zzq1015 on github
Closes #2607
The automake default ar flags are 'cru', but the 'u' flag in there
causes warnings on many modern Linux distros. Removing 'u' may have a
minor performance impact on older distros but should not cause harm.
https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
This was added earlier but appears to have been removed accidentally.
-----
[1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
[2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
Closes #2618
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
Closes #2614
The ssh2 pkg-config file could contain the following lines when build
with a static version of mbedtls:
Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
Libs.private: /xxx/libmbedcrypto.a
This static mbedtls library must be used to correctly detect ssh2
support and this library must be copied in libcurl.pc otherwise
compilation of any application (such as upmpdcli) with libcurl will fail
when trying to found mbedtls functions included in libssh2. So, replace
pkg-config --libs-only-l by pkg-config --libs.
Fixes:
-
http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
- RELEASE-NOTES: synced
Bug: #2609
Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
Closes #2612
Almost all headers start with an uppercase letter, but some didn't.
Fix the test for fsetxattr and strerror_r tests in CMake to work without
compiling
Closes #2604
- [Richard Alcock brought this change]
closes #2603
This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
"Could not find CURL_OBJS.inc.inc" message when building into a clean
folder.
closes #2602
Fixes #2606
Closes #2608
Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
Reported-by: Sean Miller
Closes #2600
Closes #2102
- TODO: CURLINFO_PAUSE_STATE
Closes #2588
Fixes #1163
Reported-By: Ithubg on github
Closes #2578
OpenSSL has supported --cacert for ages, always accepting LF-only line
endings ("Unix line endings") as well as CR/LF line endings ("Windows
line endings").
When we introduced support for --cacert also with Secure Channel (or in
cURL speak: "WinSSL"), we did not take care to support CR/LF line
endings, too, even if we are much more likely to receive input in that
form when using Windows.
Closes https://github.com/curl/curl/pull/2592
- RELEASE-NOTES: synced
Closes #2573
- checksrc: make sure sizeof() is used *with* parentheses
Closes #2563
Closes #2538
-i: only shows headers for HTTP transfers now (as documented).
Previously it would also show for pieces of the transfer that were HTTP
(for example when doing FTP over a HTTP proxy).
-i: now shows trailers as well. Previously they were not shown at all.
... instead of exeucting code to get the size. Removes the use of
LD_LIBRARY_PATH for this.
Fixes #2586
Closes #2589
Reported-by: Bernhard Walle
Fixes #2586
Reported-by: Bernhard Walle
The previous limit of 5 can still end up in situation that takes a very
long time and consumes a lot of CPU.
If there is still a rare use case for this, a user can provide their own
fnmatch callback for a version that allows a larger set of wildcards.
This commit was triggered by yet another OSS-Fuzz timeout due to this.
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
Closes #2587
follow-up to e05ad5d
Closes #2579
This example was changed in ce2140a8c1 to use the new microsecond based
getinfo option. This change makes it conditionally keep using the older
option so that the example still builds with older libcurl versions.
Closes #2584
follow-up to d9e92fd9fd1d
Provide a set of new timers that return the time intervals using integer
number of microseconds instead of floats.
CURLINFO_APPCONNECT_TIME_T
CURLINFO_CONNECT_TIME_T
CURLINFO_NAMELOOKUP_TIME_T
CURLINFO_PRETRANSFER_TIME_T
CURLINFO_REDIRECT_TIME_T
CURLINFO_STARTTRANSFER_TIME_T
CURLINFO_TOTAL_TIME_T
Closes #2495
... previously it only used the max setting if a TLS version was also
explicitly asked for.
Reported-by: byte_bucket
Fixes #2571
Closes #2572
- bump: start working on the pending 7.61.0
The warning flag leads e.g. Sun Studio compiler to bail out.
Closes #2576
.. because original MinGW and old compilers do not have the Windows API
definitions needed to support manual verification.
Original MinGW targets Windows 2000 by default, which lacks some APIs and
definitions for this feature. Disable it if these APIs are not available.
Closes https://github.com/curl/curl/pull/2522
- docs/libcurl/index.html: removed
The HTML files are long gone from the dist, now remove the last HTML
file pointing to those missing files.
Closes #2570
... and remove the github markdown syntax so that it renders better on
the web site. Also, don't use back-ticks inlined to allow the CSS to
highlight source code better.
Closes #2561
When there's an upload in progress, make sure to wait for the socket to
become writable.
Response data for a handle with a large buffer might be cached and then
used with the "closure" handle when it has a smaller buffer and then the
larger cache will be copied and overflow the new smaller heap based
buffer.
CVE: CVE-2018-1000301
Assisted-by: Max Dymond
Detected by OSS-Fuzz.
Bug: https://curl.haxx.se/docs/adv_2018-b138.html
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
RFC 6265 section 4.2.1 does not set restrictions on cookie names.
This is a follow-up to commit 7f7fcd0.
Also explicitly check proper syntax of cookie name/value pair.
New test 1155 checks that cookie names are not reserved words.
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
Closes #2558
Closes #2512
Closes #2528
- RELEASE-NOTES: typo
- RELEASE-NOTES: synced
Closes #2550
follow-up to e66cca046cef
closes #2547
Bug: #2520
Closes #2549
This ensures that make dependency tracking will force a rebuild whenever
configure --enable-debug or --enable-curldebug changes.
Closes #2548
- http: don't set the "rewind" flag when not uploading anything
It triggers an assert.
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
Closes #2546
Closes #2531
When only building with SSL backends that don't use the CA bundle file
(by default), skip the check.
Fixes #2543
Fixes #2180
Closes #2545
'len' will never be that big anyway so I converted the run-time check to
a regular assert.
Closes #2535
Closes #2544
- RELEASE-NOTES: synced
Closes https://github.com/curl/curl/pull/2542
Closes #1411
Closes #1508
Closes #2051
Closes #1332
Closes #2541
Closes #2299
- TODO: CLOEXEC
Closes #2252
... and make test 1026 rely on that feature so that --disable-manual
builds don't cause test failures.
Closes https://github.com/curl/curl/pull/2537
Closes #2532
This function can get called on a connection that isn't setup enough to
have the 'recv_underlying' function pointer initialized so it would try
to call the NULL pointer.
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
Closes #2534
- RELEASE-NOTES: synced
Closes #2525
Closes #2529
OSS-Fuzz detected
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
Broke in dd7521bcc1b7
Closes #2527
Closes #2494
Fixes FTP wildcard parsing when done over a number of read buffers.
Caused fuzzer problems on travis not seen when this was a PR!
- Curl_memchr: zero length input can't match
Fixes FTP wildcard parsing when doing over a number of read buffers.
- RELEASE-NOTES: synced
Closes #2499
Detected by OSS-Fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
Closes #2514
Fixes #2515
Closes #2517
Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
Closes https://github.com/curl/curl/pull/2504
Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
Closes https://github.com/curl/curl/pull/2504
Unfortunately this fix introduces memory leaks I've not been able to fix
in several days. Reverting this for now to get the leaks fixed.
Before:
-m, --max-time <time> Maximum time allowed for the transfer
After:
-m, --max-time <seconds> Maximum time allowed for the transfer
When receiving REFUSED_STREAM, mark the connection for close and retry
streams accordingly on another/fresh connection.
Reported-by: Terry Wu
Fixes #2416
Fixes #1618
Closes #2510
Fixes #1680
Closes #2509
It's not strictly clear if the API contract allows us to call strstr()
on a string that isn't zero terminated even when we know it will find
the substring, and clang's ASAN check dislikes us for it.
Also added a check of the return code in case it fails, even if I can't
think of a situation how that can trigger.
Detected by OSS-Fuzz
Closes #2513
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
Closes #2493
Reported-by: iz8mbw@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/2403
This triggered an assert if called more than once in debug mode (and a
memory leak if not debug build). With the right sequence of HTTP/2
headers incoming it can happen.
Detected by OSS-Fuzz
Closes #2507
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
- Update url.c to not set the build time CURL_CA_BUNDLE if the selected
SSL backend is Schannel. We allow setting CA location for schannel
only when explicitly specified by the user via CURLOPT_CAINFO /
--cacert.
- Add new test cases 3000 and 3001. These test cases check that the first
and last SAN, respectively, matches the connection hostname. New test
certificates have been added for these cases. For 3000, the certificate
prefix is Server-localhost-firstSAN and for 3001, the certificate
prefix is Server-localhost-secondSAN.
Closes https://github.com/curl/curl/pull/1325
Follow-up to e35b025.
Closes https://github.com/curl/curl/pull/2503
- Use lib.exe for making the static library instead of link.exe /lib.
The latter is undocumented and could cause problems as noted in the
comments.
- Remove a dangling URL that no longer worked. (I was not able to find
the IDN download at MSDN/microsoft.com, so it seems to be removed.)
Closes https://github.com/curl/curl/pull/2474
Closes #2484
Closes #2376
Fixes https://github.com/curl/curl/issues/1622
Closes https://github.com/curl/curl/pull/1660
... only set it when we actually have to run tests to reduce its impact
on for example build commands etc.
Fixes #2490
Closes #2492
Closes https://github.com/curl/curl/pull/2479
Fixes #2446
Closes #2488
Closes #2500
Closes https://github.com/curl/curl/pull/2496
Closes https://github.com/curl/curl/pull/2491
Closes https://github.com/curl/curl/pull/2498
Closes https://github.com/curl/curl/pull/2497
Fixes #2485
Closes #2486
Reported-by: Ernst Sjöstrand
Inspired by #2477
Closes #2480
closes #2471
Closes #2478
Closes https://github.com/curl/curl/pull/2476
Follow up on https://github.com/curl/curl/pull/2472.
Now using en-us instead of nl-nl as language code in the URL.
Closes https://github.com/curl/curl/pull/2475
The setenv command no longer exists and visual studio build prompts got
changed. Used Visual Studio 2015/2017 as reference.
Closes #2472
Fixes #2466
Closes #2468
... and use this type instead of 'sa_family_t' in the code since several
platforms don't have it.
Closes #2463
Fixes #2464
Closes #2465
closes #2462
- RELEASE-NOTES: synced
Closes https://github.com/curl/curl/pull/2189
Closes #2455
Fixes #2430
Closes #2457
Closes #2432
Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
then passed to the relevant OS API. This means that the behavior of this
case is actually OS dependent.
The Unix path resolution rules say that the OS must handle swallowing
the extra "/" and so this path is the same as "/foo/bar"
The Windows path resolution rules say that this is a UNC path and
automatically handles the SMB access for the program. So curl on Windows
was already doing Appendix E.3.2 without any special code in curl.
Regression
Closes #2438
Closes #2451
Closes #2453
closes #2458
This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
is processed.
Ref: https://github.com/curl/curl/pull/2440
... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
Fixes #2319
Closes #2447
Closes #2448
This makes libcurl handle thousands of cookies much better and speedier.
Closes #2440
This drops the cookie load time for 8k cookies from 178ms to 15ms.
Closes #2441
Bug: #2436
Reported-by: Oumph on github
Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
Reported-by: David L.
Closes #2363
Ref: https://github.com/travis-ci/travis-ci/issues/8507
Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
follow-up to a9a7b60
Closes #2428
- threaded resolver: track resolver time and set suitable timeout values
Closes #2419
Closes #2399
If a connection has received a GOAWAY frame while not being used, the
function now reads frames off the connection before trying to reuse it
to avoid reusing connections the server has told us not to use.
Closes #2414
Fixes #2400
Closes #2317
Reported-by: Dongliang Mu
Fixes #2410
Make the integer overflow check not rely on the undefined behavior that
a size_t wraps around on overflow.
Detected by lgtm.com
Closes #2408
Detected by lgtm.com
Detected by lgtm.com
Closes #2401
- RELEASE-NOTES: synced
Currently CMake cannot detect Brotli support. This adds detection of the
libraries and associated header files. It also adds this to the
generated config.
Closes #2392
Closes #1694
Fixes #2190
Closes #2377
Some test cases got a factor 30(!) speed improvement with this change.
Reported-by: Cyril B
Fixes #2369
Closes #2383
Especially unpausing a transfer might have to move the socket back to the
"currently used sockets" hash to get monitored. Otherwise it would never get
any more data and get stuck. Easily triggered with pausing using the
multi_socket API.
examples/hiperfifo.c: improved
* use cleaner notation for unused variables than the (void) hack;
Reported-by: 刘佩东
Fixes #2386
Closes #2388
Closes #2389
Closes #2387
Bug: https://github.com/curl/curl/issues/2381
Reported on IRC
Closes #2382
Fixes #2380
Closes #2379
[ci skip]
- Revert "hostip: fix compiler warning: 'variable set but not used'"
follow-up to 72a0f62
CVE-2018-1000121
Reported-by: Dario Weisser
Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
Refuse to operate when given path components featuring byte values lower
than 32.
CVE-2018-1000120
Reported-by: Duy Phan Thanh
Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
CVE-2018-1000122
Bug: https://curl.haxx.se/docs/adv_2018-b047.html
Detected by OSS-fuzz
... and make sure to avoid integer overflows with really large values.
Reported-by: 刘佩东
Fixes #2371
Closes #2373
follow-up to e04417d
Closes #2349