]> git.ipfire.org Git - thirdparty/git.git/commit - connect.c
git_connect: clear GIT_* environment for ssh
authorJeff King <peff@peff.net>
Fri, 4 Sep 2015 22:40:08 +0000 (18:40 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 4 Sep 2015 22:50:33 +0000 (15:50 -0700)
commitaab40438511dd2e4505c0850478e79773aa6721c
treebe61efe6393da0de96020f89ee8892cffc0ac5bb
parenta17c56c056d5fea0843b429132904c429a900229
git_connect: clear GIT_* environment for ssh

When we "switch" to another local repository to run the server
side of a fetch or push, we must clear the variables in
local_repo_env so that our local $GIT_DIR, etc, do not
pollute the upload-pack or receive-pack that is executing in
the "remote" repository.

We have never done so for ssh connections. For the most
part, nobody has noticed because ssh will not pass unknown
environment variables by default. However, it is not out of
the question for a user to configure ssh to pass along GIT_*
variables using SendEnv/AcceptEnv.

We can demonstrate the problem by using "git -c" on a local
command and seeing its impact on a remote repository.  This
config ends up in $GIT_CONFIG_PARAMETERS. In the local case,
the config has no impact, but in the ssh transport, it does
(our test script has a fake ssh that passes through all
environment variables; this isn't normal, but does simulate
one possible setup).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
connect.c
t/t5507-remote-environment.sh [new file with mode: 0755]