forked from soccera/rdo
Fix various formatting mistakes in rdo.c
This commit is contained in:
parent
16ab33147d
commit
dcd1e4061c
1 changed files with 24 additions and 25 deletions
39
rdo.c
39
rdo.c
|
@ -8,25 +8,25 @@
|
|||
|
||||
void getpwd(char* password){
|
||||
struct termios raw;
|
||||
tcgetattr(STDIN_FILENO, &raw);
|
||||
raw.c_lflag &= ~ECHO;
|
||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||
tcgetattr(STDIN_FILENO, &raw);
|
||||
raw.c_lflag &= ~ECHO;
|
||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||
|
||||
printf("Password: ");
|
||||
fgets(password, 128, stdin);
|
||||
password[strcspn(password, "\n")] = 0;
|
||||
printf("Password: ");
|
||||
fgets(password, 128, stdin);
|
||||
password[strcspn(password, "\n")] = 0;
|
||||
|
||||
raw.c_lflag |= ECHO;
|
||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||
printf("\n");
|
||||
raw.c_lflag |= ECHO;
|
||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void runprog(int argc, char** argv) {
|
||||
for(int i=0; i<argc; i++)
|
||||
argv[i] = argv[i + 1];
|
||||
setuid(0);
|
||||
setgid(0);
|
||||
if (execvp(argv[0], argv) != 0) perror(argv[0]);
|
||||
for(int i=0; i<argc; i++)
|
||||
argv[i] = argv[i + 1];
|
||||
setuid(0);
|
||||
setgid(0);
|
||||
if (execvp(argv[0], argv) != 0) perror(argv[0]);
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
|
@ -45,9 +45,9 @@ int main(int argc, char** argv) {
|
|||
int ruid = getuid();
|
||||
if (ruid == 0) {
|
||||
fclose(fp);
|
||||
runprog(argc, argv);
|
||||
return 0;
|
||||
}
|
||||
runprog(argc, argv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char username[64];
|
||||
fgets(username, 64, fp);
|
||||
|
@ -79,11 +79,10 @@ int main(int argc, char** argv) {
|
|||
getpwd(password);
|
||||
if (strcmp(shadowEntry->sp_pwdp, crypt(password, shadowEntry->sp_pwdp)) == 0) {
|
||||
runprog(argc, argv);
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
fprintf(stderr, "Wrong password.\n");
|
||||
tries++;
|
||||
}
|
||||
return -5;
|
||||
return -6;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue