summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/addauth.c12
-rw-r--r--utils/login.c11
2 files changed, 8 insertions, 15 deletions
diff --git a/utils/addauth.c b/utils/addauth.c
index 4cf221cf..7c199989 100644
--- a/utils/addauth.c
+++ b/utils/addauth.c
@@ -64,16 +64,12 @@ main (int argc, char *argv[])
error (52, err, "Cannot get invoking authentication");
/* Check passwords. */
- err = ugids_verify (&frobauth.ugids, &have_uids, &have_gids, 0);
- if (err == EINVAL)
+ err = ugids_verify_make_auth (&frobauth.ugids, &have_uids, &have_gids, 0, 0,
+ 0, 0, &auth);
+ if (err == EACCES)
error (15, 0, "Invalid password");
else if (err)
- error (16, err, "Cannot verify authentication");
-
- /* Make an auth port with the new ids. */
- err = ugids_make_auth (&frobauth.ugids, MACH_PORT_NULL, &auth);
- if (err)
- error (3, err, "Authentication failure");
+ error (16, err, "Authentication failure");
if (frobauth.verbose)
/* A string showing which ids we will add. */
diff --git a/utils/login.c b/utils/login.c
index c22a379a..a9b3d8b8 100644
--- a/utils/login.c
+++ b/utils/login.c
@@ -581,11 +581,12 @@ main(int argc, char *argv[])
argp_parse (&argp, argc, argv, ARGP_IN_ORDER, 0, 0);
/* Check passwords where necessary. */
- err = ugids_verify (&ugids, &parent_uids, &parent_gids, 0);
- if (err == EINVAL)
+ err = ugids_verify_make_auth (&ugids, &parent_uids, &parent_gids, 0, 0,
+ 0, 0, &auth);
+ if (err == EACCES)
fail (5, 0, "Invalid password", 0);
else if (err)
- error (5, err, "Checking passwords");
+ error (5, err, "Authentication failure");
/* Now that we've parsed the command line, put together all these
environments we've gotten from various places. There are two targets:
@@ -642,10 +643,6 @@ main(int argc, char *argv[])
free (passwd);
}
- err = ugids_make_auth (&ugids, MACH_PORT_NULL, &auth);
- if (err)
- fail (3, err, "Authentication failure", 0);
-
err = proc_getsid (proc_server, pid, &sid);
assert_perror (err); /* This should never fail. */