From 8684056349dcadb86b2bf47a5538df90022ab094 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Sun, 23 Sep 2012 20:46:49 -0600 Subject: [PATCH] Fix getting a shell on server --- repo_shell.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/repo_shell.c b/repo_shell.c index b51c0ad..1b06ec3 100644 --- a/repo_shell.c +++ b/repo_shell.c @@ -19,6 +19,8 @@ typedef struct { char *owner; } cfg_t; +static const char* shell_argv[] = { "/bin/bash", NULL }; + #undef USE_DEFAULTS #ifdef USE_DEFAULTS /* perhaps we want defaults? Not sure */ static cfg_t cfg { @@ -344,9 +346,10 @@ int main(int argc, char **argv) !strcmp(argv[1], "--version"))) { fprintf(stderr, "%s\n", version); return 0; - } - if (argc < 3) - die("invalid arguments"); + } + + if (argc == 1 && check_ssh_interactive(getuid())) + execvp(shell_argv[0], (char *const *) shell_argv); #ifdef USE_DEFAULTS ini_parse("repo_shell.cfg", handler, &cfg); -- 2.39.2