]> oss.titaniummirror.com Git - repo_shell.git/commitdiff
Fix getting a shell on server
authorR. Steve McKown <rsmckown@gmail.com>
Mon, 24 Sep 2012 02:46:49 +0000 (20:46 -0600)
committerR. Steve McKown <rsmckown@gmail.com>
Mon, 24 Sep 2012 02:46:54 +0000 (20:46 -0600)
repo_shell.c

index b51c0add25039ca49e31b232a50a9f3add431fa8..1b06ec3eefbee2c2c49968db9ef61fc5f05af5f7 100644 (file)
@@ -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);