index 5615c74e7d5f4e5f9d93c0f90c6f57fe8b41442f..04cbdf7a67e9f26d024da1117bf5a5a03596dd1b 100644 (file)
--- a/rsh.c
+++ b/rsh.c
snprintf(command, COMMAND_SIZE,
"%s='%s' %s",
GIT_DIR_ENVIRONMENT, path, remote_prog);
+ *path = '\0';
posn = command + strlen(command);
for (i = 0; i < rmt_argc; i++) {
*(posn++) = ' ';
return error("Couldn't create socket");
}
if (!fork()) {
+ const char *ssh, *ssh_basename;
+ ssh = getenv("GIT_SSH");
+ if (!ssh) ssh = "ssh";
+ ssh_basename = strrchr(ssh, '/');
+ if (!ssh_basename)
+ ssh_basename = ssh;
+ else
+ ssh_basename++;
close(sv[1]);
dup2(sv[0], 0);
dup2(sv[0], 1);
- execlp("ssh", "ssh", host, command, NULL);
+ execlp(ssh, ssh_basename, host, command, NULL);
}
close(sv[0]);
*fd_in = sv[1];