die("opening /dev/null failed");
close (devnull_fd);
- if (argc == 2 && (!strcmp(argv[1], "-v") ||
- !strcmp(argv[1], "--version"))) {
+ if (argc == 2 && (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--version"))) {
fprintf(stderr, "%s\n", version);
return 0;
}
- if (argc == 1 && check_ssh_interactive(getuid())) {
+ if (argc == 1) {
+ if (!check_ssh_interactive(getuid()))
+ die("only repository access is allowed");
setuid(getuid());
argv[0] = SHELL;
execvp(argv[0], (char *const *) argv);
+ return 1;
}
if (ini_parse(CFG_FILE, ini_handler, &cfg) < 0)
die("cannot read config file %s", CFG_FILE);
- if (argc == 4 && (!strcmp(argv[1], "-t") ||
- !strcmp(argv[1], "--test"))) {
- perms_t p = git_acl(argv[2], argv[3], cfg.git_acl_file);
+ if ((!strcmp(argv[1], "-t") || !strcmp(argv[1], "--test"))) {
+ perms_t p;
+
+ if (argc !=4)
+ die("usage: %s -t <user> <repo>", argv[0]);
+ p = git_acl(argv[2], argv[3], cfg.git_acl_file);
fprintf(stderr,
"user '%s' repo '%s' perms '%s'\n via userid '%s' repoid '%s'\n",
argv[2], argv[3], git_acl_perms_as_str(p), git_acl_last_userid(),