]> granicus.if.org Git - sudo/commitdiff
Wire up invalidate and validate methods for sudoers
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 16 Mar 2010 00:24:55 +0000 (20:24 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 16 Mar 2010 00:24:55 +0000 (20:24 -0400)
plugins/sudoers/sudoers.c
src/sudo.c

index 33c2e3c67395999dd7d5381031aabf8310b1ddeb..bcda027910aa33876c6ca768d4463ddf5a3a0c0f 100644 (file)
@@ -609,6 +609,23 @@ sudoers_policy_check(int argc, char * const argv[], char *env_add[],
        argv_out, user_env_out);
 }
 
+static int
+sudoers_policy_validate(void)
+{
+    user_cmnd = "validate";
+    SET(sudo_mode, MODE_VALIDATE);
+
+    return sudoers_policy_main(0, NULL, NULL, NULL, NULL, NULL);
+}
+
+static void
+sudoers_policy_invalidate(int remove)
+{
+    user_cmnd = "kill";
+    remove_timestamp(remove);
+    cleanup(0);
+}
+
 static int
 sudoers_policy_list(int argc, char * const argv[], int verbose,
     const char *list_user)
@@ -1324,10 +1341,8 @@ struct policy_plugin sudoers_policy = {
     sudoers_policy_version,
     sudoers_policy_check,
     sudoers_policy_list,
-#ifdef notyet
     sudoers_policy_validate,
     sudoers_policy_invalidate
-#endif
 };
 
 #ifdef notyet
index 8529499cf650c54d996e048ab135270b5dd27332..0951cdde907ba6cb123be9b9d5298e133fd8f2b6 100644 (file)
@@ -201,7 +201,7 @@ main(int argc, char *argv[], char *envp[])
            exit(ok != TRUE);
        case MODE_KILL:
        case MODE_INVALIDATE:
-           if (policy_plugin.u.policy->validate == NULL) {
+           if (policy_plugin.u.policy->invalidate == NULL) {
                warningx("policy plugin %s does not support the -k/-K flags",
                    policy_plugin.name);
                exit(1);