From 86566f4cebaeaccf58b711b02432bf443ebb64f7 Mon Sep 17 00:00:00 2001 From: sin Date: Fri, 18 Oct 2013 10:25:39 +0100 Subject: [PATCH] Only try to ask for a password and check if uid is != 0 --- su.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/su.c b/su.c index 5531e63..736a2f3 100644 --- a/su.c +++ b/su.c @@ -61,17 +61,17 @@ main(int argc, char **argv) pass = getpass("Password: "); if (!pass) eprintf("getpass:"); + + cryptpass = crypt(pass, spw->sp_pwdp); + for (i = 0; pass[i]; i++) + pass[i] = '\0'; + if (!cryptpass) + eprintf("crypt:"); + + if (strcmp(cryptpass, spw->sp_pwdp) != 0) + enprintf(EXIT_FAILURE, "Denied\n"); } - cryptpass = crypt(pass, spw->sp_pwdp); - for (i = 0; pass[i]; i++) - pass[i] = '\0'; - if (!cryptpass) - eprintf("crypt:"); - - if (strcmp(cryptpass, spw->sp_pwdp) != 0) - enprintf(EXIT_FAILURE, "Denied\n"); - errno = 0; pw = getpwnam(usr); if (errno)