| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
By making the `magic` identifier the same size and at the same place
within the structs (easy, multi, share), libcurl will be able to more
reliably detect and safely error out if an application passes in the
wrong handle to APIs. Easier to detect and less likely to cause crashes
if done.
Such mixups can't be detected at compile-time due to them being
typedefed void pointers - unless `CURL_STRICTER` is defined.
|
|
|
|
|
|
|
|
|
| |
... just as the native code path does. Avoids sending too large data
chunks in the callback and more.
Reported-by: Gisle Vanem
Fixes #6462
Closes #6473
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since curl's own memory debugging system redefines free() calls to track
and fiddle with memory, it cannot be used on memory allocated by 3rd
party libraries.
Third party libraries SHOULD NOT require free() to release allocated
resources for this reason - and libs can use separate healp allocators
on some systems (like Windows) so free() doesn't necessarily work
anyway.
Filed as an issue with libssh: https://bugs.libssh.org/T268
Closes #6481
|
|
|
|
|
|
| |
To help catch bad invokes.
Closes #6476
|
|
|
|
| |
skip test 410 for mesalink in the CI as it otherwise hangs "forever"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... in most cases instead of 'struct connectdata *' but in some cases in
addition to.
- We mostly operate on transfers and not connections.
- We need the transfer handle to log, store data and more. Everything in
libcurl is driven by a transfer (the CURL * in the public API).
- This work clarifies and separates the transfers from the connections
better.
- We should avoid "conn->data". Since individual connections can be used
by many transfers when multiplexing, making sure that conn->data
points to the current and correct transfer at all times is difficult
and has been notoriously error-prone over the years. The goal is to
ultimately remove the conn->data pointer for this reason.
Closes #6425
|
|
|
|
|
|
| |
This fixes a misspelled "it" and a grammatically wrong "-ing" suffix.
Closes #6471
|
| |
|
|
|
|
|
|
|
| |
This does for cmake builds what --disable-openssl-auto-load-config
does for autoconf builds.
Closes https://github.com/curl/curl/pull/6435
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and as a practical side-effect, make sure that the
Curl_easyopts_check() function is asserted in debug builds, which we
want to detect mismatches between the options list in easyoptions.c and
the options in curl.h
Found-by: Gisle Vanem
Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45991815
Closes #6461
|
|
|
|
| |
Follow-up from AWS_SIGV4
|
|
|
|
|
|
| |
Follow-up from e87ad71d1ba00519
Closes #6459
|
|
|
|
|
|
|
|
|
|
|
|
| |
... so that a function can first use MIMEPOST and then set it to NULL to
reset it back to a blank POST.
Added test 584 to verify the fix.
Reported-by: Christoph M. Becker
Fixes #6455
Closes #6456
|
|
|
|
|
|
|
|
|
|
|
| |
... instead of at end of the DO state. This makes the timer more
accurate for the protocols that use the DOING state (such as FTP), and
simplifies how the function (now called init_perform) is called.
The timer will then include the entire procedure up to PERFORM -
including all instructions for getting the transfer started.
Closes #6454
|
|
|
|
|
|
|
|
| |
... the timer *does* include the instructions for getting the remote
file.
Ref: #6452
Closes #6453
|
|
|
|
|
|
| |
... when built without -DUNICODE.
Closes #6457
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a batch file is run without CRLF line endings (ie LF-only) then
arbitrary behavior may occur. I consider that a bug in Windows, however
the effects can be serious enough (eg unintended code executed) that
we're fixing it in the repo by requiring CRLF line endings for batch
files on checkout.
Prior to this change the checked-out line endings of batch files were
dependent on a user's git preferences. On Windows it is common for git
users to have automatic CRLF conversion enabled (core.autocrlf true),
but those users that don't would run into this behavior.
For example a user has reported running the Visual Studio project
generator batch file (projects/generate.bat) and it looped forever.
Output showed that the Windows OS interpreter was occasionally jumping
to arbitrary points in the batch file and executing commands. This
resulted in unintended files being removed (a removal sequence called)
and looping forever.
Ref: https://serverfault.com/q/429594
Ref: https://stackoverflow.com/q/232651
Ref: https://www.dostips.com/forum/viewtopic.php?t=8988
Ref: https://git-scm.com/docs/gitattributes#_checking_out_and_checking_in
Ref: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf
Bug: https://github.com/curl/curl/discussions/6427
Reported-by: Ganesh Kamath
Closes https://github.com/curl/curl/pull/6442
|
| |
|
|
|
|
|
|
| |
o removed HSTS - already implemented
o added HTTPS RR records
o mention HTTP/3 completion
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
... as we reserve this prefix to library-wide functions.
Closes #6443
|
|
|
|
| |
Closes #6445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move Windows terminal init code from tool_main to tool_doswin.
- Restore the original console settings on CTRL+C and CTRL+BREAK.
Background: On Windows the curl tool changes the console settings to
enable virtual terminal processing (eg color output) if supported
(ie Win 10). The original settings are restored on exit but prior to
this change were not restored in the case of the CTRL signals.
Windows VT behavior varies depending on console/powershell/terminal;
refer to the discussion in #6226.
Assisted-by: Rich Turner
Closes https://github.com/curl/curl/pull/6226
|
|
|
|
| |
Follow-up to 324cf1d2e
|
|
|
|
|
|
| |
This commit bumps the help to the current state of the project.
Closes #6437
|
|
|
|
|
|
|
|
|
| |
The script warns if the length of $opt and $desc is > 78. However, these
two variables are on totally separate lines so the check makes no sense.
Also the $bitmask field is totally forgotten. Currently this leads to
two warnings within `--resolve` and `--aws-sigv4`.
Closes #6438
|
|
|
|
|
|
|
| |
curl does not list all categories when you invoke "--help" without any
parameters.
Closes #6436
|
|
|
|
|
|
| |
Make it shorter and imperative form
Closes #6439
|
|
|
|
|
| |
Bug: https://curl.se/mail/lib-2021-01/0063.html
Closes #6434
|
|
|
|
|
|
|
| |
As that's a significant error condition and scan-build warns for NULL
pointer dereferences if we don't.
Closes #6433
|
|
|
|
| |
... to avoid running in that state with data->conn being NULL.
|
|
|
|
| |
Detected by scan-build
|
|
|
|
|
|
| |
Pointed out by Coverity
Closes #6431
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- During the end-of-headers response phase do not mark the tunnel
complete unless the response body was completely parsed/ignored.
Prior to this change if the entirety of a CONNECT response with chunked
encoding was not received by the time the final header was parsed then
the connection would be marked done prematurely, before all the chunked
data could be read in and ignored (since this is what we do with any
CONNECT response body) and the connection could not be used.
Bug: https://curl.se/mail/lib-2021-01/0033.html
Reported-by: Fabian Keil
Closes https://github.com/curl/curl/pull/6432
|
| |
|
|
|
|
|
|
|
|
| |
This improves IDNA2003 compatiblity.
Reported-by: Bubu on github
Fixes #6423
Closes #6428
|
|
|
|
| |
Closes #6430
|