- 20 Nov, 2023 3 commits
-
-
remote: fix memory leak in git_remote_download()
Edward Thomson committed -
Use #!/bin/bash for script with bash-specific commands
Edward Thomson committed -
Edward Thomson committed
-
- 31 Oct, 2023 1 commit
-
-
connect_opts is created with its custom_headers and proxy_opts->url possibly allocated on heap, just like in git_remote_fetch(). But unlike in _fetch(), it is not disposed at the end of the function, thus causing memory leak.
7Ji committed
-
- 18 Oct, 2023 1 commit
-
-
remote: optionally report unchanged tips
Edward Thomson committed
-
- 17 Oct, 2023 1 commit
-
-
Edward Thomson committed
-
- 15 Oct, 2023 2 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
- 25 Sep, 2023 1 commit
-
-
Carlos Martín Nieto committed
-
- 19 Sep, 2023 3 commits
-
-
Like in the previous commit and in git, we reject a path that looks like an option to avoid injection into the command we ask the remote to execute.
Carlos Martín Nieto committed -
If you pass along something like `-oProxyCommand=...` as the hostname, we would pass that along to ssh unbeknownst to us and potentially also the user, if they were asking a tool to recursively clone submodules. This is the same fix as mainline git although they don't separate the username and host for ssh so ours looks like it's checking more.
Carlos Martín Nieto committed -
This function returns true if the string starts with a `-` as that could be used to inject options into commands we execute.
Carlos Martín Nieto committed
-
- 05 Sep, 2023 1 commit
-
-
Edward Thomson committed
-
- 03 Sep, 2023 8 commits
-
-
We now have no "big single object" that contains thread state.
Edward Thomson committed -
Now that thread-local error data is handled in error, move the thread local data out of the `threadstate` object, since it has now become useless indirection.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
Instead of having a separate type for saving state, we can re-use the `git_error` structure. In practice, saving the error code along with the `git_error` information has not proven necessary or useful, so it can be removed to simplify down to re-using a single structure.
Edward Thomson committed -
Most callers only need to _get_ error messages. Only callers implemented more complicated functions (like a custom ODB for example) need to set them. (Callback users should likely ferry their own error information in their callback payload.)
Edward Thomson committed -
Callers want to be able to simply call `git_error_last()->message`, not have to worry about whether `git_error_last()` returns NULL or not.
Edward Thomson committed -
The error handling in the ssh certificate callback is straightforward. There's no error messages from an external library that need to be saved, we populate the error message ourselves. Since there's nothing custom here, it does not need to use the error saving mechanism.
Edward Thomson committed
-
- 31 Aug, 2023 1 commit
-
-
Add OpenSSH support
Edward Thomson committed
-
- 30 Aug, 2023 18 commits
-
-
Edward Thomson committed
-
Handle custom paths for OpenSSH.
Edward Thomson committed -
This helped when troubleshooting issues running the `ci/test.sh` script locally.
Edward Thomson committed -
Callers can specify the ssh command to invoke using `core.sshcommand` or the `GIT_SSH` environment variable. This is useful for specifying alternate configuration, and is particularly useful for our testing environment.
Edward Thomson committed -
Provide both cmdline-style handling (passing it to the shell on POSIX, or directly to CreateProcess on win32) and execv style (passing it directly to execv on POSIX, and mangling it into a single command-line on win32).
Edward Thomson committed -
Don't capture stderr, optimize for the CLI case.
Edward Thomson committed -
Provide more user-friendly error messages in smart protocol negotiation failures.
Edward Thomson committed -
Provide a mechanism for callers to read from stderr.
Edward Thomson committed -
Suppress SIGPIPEs during writes to our piped process. On single-threaded applications, this is as simple as ignoring the signal. But since this is process-wide, on multi-threaded applications, we need to use some cumbersome `pthread_sigmask` manipulation. Thanks to https://www.doof.me.uk/2020/09/23/sigpipe-and-how-to-ignore-it/ and http://www.microhowto.info:80/howto/ignore_sigpipe_without_affecting_other_threads_in_a_process.html
Edward Thomson committed -
Instead of "early EOF", provide information on _when_ we're seeing the EOF for debugging.
Edward Thomson committed -
A transport may want to validate that it's in a sane state; when flushing on close, don't assume that we're doing an upload-pack; send the correct direction.
Edward Thomson committed -
Now that we (may) exec a child process to do ssh, we don't want valgrind reporting on that. Suppress children in valgrind runs.
Edward Thomson committed -
There are no custom callbacks for OpenSSH; don't test them.
Edward Thomson committed -
Edward Thomson committed
-
We can't reliably detect SIGPIPE on close because of platform differences. Track `pid` and send `SIGTERM` to a function and ensure that we can detect it.
Edward Thomson committed -
Edward Thomson committed
-
We can now use the `git_process` class to invoke OpenSSH and use it as an SSH transport. This may be preferred over libssh2 for a variety of callers.
Edward Thomson committed -
We may want to support SSH but with a different provider that is not libssh2. Add GIT_SSH to indicate that we have some inbuilt SSH support and GIT_SSH_LIBSSH2 to indicate that support is via libssh2. This is similar to how we support GIT_HTTPS and GIT_OPENSSL, for example.
Edward Thomson committed
-