summaryrefslogtreecommitdiff
path: root/http-backend.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-10-24 14:57:53 -0700
committerJunio C Hamano <gitster@pobox.com>2014-10-24 14:57:54 -0700
commit217610d7d61864f24efc0ea837dc911be44fd9c6 (patch)
treeebcbe1cde6d22498c7007a0b3e117e93168378f8 /http-backend.c
parentf35a02b15d22521c4902d8b3434c7c55eeab4a1d (diff)
parenta915459097b72da9cc058172a54029352b684b0f (diff)
downloadgit-217610d7d61864f24efc0ea837dc911be44fd9c6.tar.gz
Merge branch 'rs/run-command-env-array'
Add managed "env" array to child_process to clarify the lifetime rules. * rs/run-command-env-array: use env_array member of struct child_process run-command: add env_array, an optional argv_array for env
Diffstat (limited to 'http-backend.c')
-rw-r--r--http-backend.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/http-backend.c b/http-backend.c
index 9977c5d499..b6c0484fb2 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -314,7 +314,6 @@ static void run_service(const char **argv)
const char *encoding = getenv("HTTP_CONTENT_ENCODING");
const char *user = getenv("REMOTE_USER");
const char *host = getenv("REMOTE_ADDR");
- struct argv_array env = ARGV_ARRAY_INIT;
int gzipped_request = 0;
struct child_process cld = CHILD_PROCESS_INIT;
@@ -329,13 +328,12 @@ static void run_service(const char **argv)
host = "(none)";
if (!getenv("GIT_COMMITTER_NAME"))
- argv_array_pushf(&env, "GIT_COMMITTER_NAME=%s", user);
+ argv_array_pushf(&cld.env_array, "GIT_COMMITTER_NAME=%s", user);
if (!getenv("GIT_COMMITTER_EMAIL"))
- argv_array_pushf(&env, "GIT_COMMITTER_EMAIL=%s@http.%s",
- user, host);
+ argv_array_pushf(&cld.env_array,
+ "GIT_COMMITTER_EMAIL=%s@http.%s", user, host);
cld.argv = argv;
- cld.env = env.argv;
if (gzipped_request)
cld.in = -1;
cld.git_cmd = 1;
@@ -350,7 +348,6 @@ static void run_service(const char **argv)
if (finish_command(&cld))
exit(1);
- argv_array_clear(&env);
}
static int show_text_ref(const char *name, const unsigned char *sha1,