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){
|
void getpwd(char* password){
|
||||||
struct termios raw;
|
struct termios raw;
|
||||||
tcgetattr(STDIN_FILENO, &raw);
|
tcgetattr(STDIN_FILENO, &raw);
|
||||||
raw.c_lflag &= ~ECHO;
|
raw.c_lflag &= ~ECHO;
|
||||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||||
|
|
||||||
printf("Password: ");
|
printf("Password: ");
|
||||||
fgets(password, 128, stdin);
|
fgets(password, 128, stdin);
|
||||||
password[strcspn(password, "\n")] = 0;
|
password[strcspn(password, "\n")] = 0;
|
||||||
|
|
||||||
raw.c_lflag |= ECHO;
|
raw.c_lflag |= ECHO;
|
||||||
tcsetattr(STDIN_FILENO, 0, &raw);
|
tcsetattr(STDIN_FILENO, 0, &raw);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void runprog(int argc, char** argv) {
|
void runprog(int argc, char** argv) {
|
||||||
for(int i=0; i<argc; i++)
|
for(int i=0; i<argc; i++)
|
||||||
argv[i] = argv[i + 1];
|
argv[i] = argv[i + 1];
|
||||||
setuid(0);
|
setuid(0);
|
||||||
setgid(0);
|
setgid(0);
|
||||||
if (execvp(argv[0], argv) != 0) perror(argv[0]);
|
if (execvp(argv[0], argv) != 0) perror(argv[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
@ -45,9 +45,9 @@ int main(int argc, char** argv) {
|
||||||
int ruid = getuid();
|
int ruid = getuid();
|
||||||
if (ruid == 0) {
|
if (ruid == 0) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
runprog(argc, argv);
|
runprog(argc, argv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char username[64];
|
char username[64];
|
||||||
fgets(username, 64, fp);
|
fgets(username, 64, fp);
|
||||||
|
@ -79,11 +79,10 @@ int main(int argc, char** argv) {
|
||||||
getpwd(password);
|
getpwd(password);
|
||||||
if (strcmp(shadowEntry->sp_pwdp, crypt(password, shadowEntry->sp_pwdp)) == 0) {
|
if (strcmp(shadowEntry->sp_pwdp, crypt(password, shadowEntry->sp_pwdp)) == 0) {
|
||||||
runprog(argc, argv);
|
runprog(argc, argv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fprintf(stderr, "Wrong password.\n");
|
fprintf(stderr, "Wrong password.\n");
|
||||||
tries++;
|
tries++;
|
||||||
}
|
}
|
||||||
return -5;
|
return -6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue