Matt Draisey <matt@draisey.ca> writes: > From: Matt Draisey <matt@draisey.ca> > > remove environment variables relating to the current repository > before execing the 'remote' half of a local push or pull operation > --- > > connect.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/connect.c b/connect.c > index d6f4e4c..50cc879 100644 > --- a/connect.c > +++ b/connect.c > @@ -644,8 +644,13 @@ int git_connect(int fd[2], char *url, co > ssh_basename++; > execlp(ssh, ssh_basename, host, command, NULL); > } > - else > + else { > + unsetenv("GIT_DIR"); > + unsetenv("GIT_INDEX_FILE"); > + unsetenv("GIT_OBJECT_DIRECTORY"); > + unsetenv("GIT_ALTERNATE_OBJECT_DIRECTORIES"); > execlp("sh", "sh", "-c", command, NULL); > + } > die("exec failed"); > } > fd[0] = pipefd[0][0]; There are platforms that lack unsetenv(3C), so you also need an emulation similar to what we do for setenv(3) in compat/setenv.c. I suspect GIT_DIR is automatically set up by enter_repo on the other side when upload-pack (for fetch case) or receive-pack (for push case) is run, so that may not be necessary, but cleaning it along with others here sounds sane, even if only for consistency's sake. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Fri Jan 20 12:14:43 2006
This archive was generated by hypermail 2.1.8 : 2006-01-20 12:16:52 EST