From: R. Steve McKown Date: Mon, 24 Sep 2012 02:46:49 +0000 (-0600) Subject: Fix getting a shell on server X-Git-Tag: 0.2~5 X-Git-Url: https://oss.titaniummirror.com/gitweb?p=repo_shell.git;a=commitdiff_plain;h=8684056349dcadb86b2bf47a5538df90022ab094 Fix getting a shell on server --- 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);