path: root/connect.c
diff options
authorJohannes Sixt <>2013-11-28 19:48:45 (GMT)
committerJunio C Hamano <>2013-12-09 22:54:47 (GMT)
commitd98d109979760bed1909fbf5e56cbb6239980095 (patch)
treef27a651fdcf226cc34900dfef087118d388e0f4d /connect.c
parent2171f3d2aa1412a744545c07b28003a7ff4af5df (diff)
git_connect: remove artificial limit of a remote command
Since day one, function git_connect() had a limit on the command line of the command that is invoked to make a connection. 7a33bcbe converted the code that constructs the command to strbuf. This would have been the right time to remove the limit, but it did not happen. Remove it now. git_connect() uses start_command() to invoke the command; consequently, the limits of the system still apply, but are diagnosed only at execve() time. But these limits are more lenient than the 1K that git_connect() imposed. Signed-off-by: Johannes Sixt <> Signed-off-by: Torsten Bögershausen <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'connect.c')
1 files changed, 1 insertions, 6 deletions
diff --git a/connect.c b/connect.c
index 06e88b0..6cc1f8d 100644
--- a/connect.c
+++ b/connect.c
@@ -527,8 +527,6 @@ static struct child_process *git_proxy_connect(int fd[2], char *host)
return proxy;
-#define MAX_CMD_LEN 1024
static char *get_port(char *host)
char *end;
@@ -570,7 +568,7 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
int free_path = 0;
char *port = NULL;
const char **arg;
- struct strbuf cmd;
+ struct strbuf cmd = STRBUF_INIT;
/* Without this we cannot rely on waitpid() to tell
* what happened to our children.
@@ -676,12 +674,9 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
conn = xcalloc(1, sizeof(*conn));
- strbuf_init(&cmd, MAX_CMD_LEN);
strbuf_addstr(&cmd, prog);
strbuf_addch(&cmd, ' ');
sq_quote_buf(&cmd, path);
- if (cmd.len >= MAX_CMD_LEN)
- die("command line too long");
conn->in = conn->out = -1;
conn->argv = arg = xcalloc(7, sizeof(*arg));