X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Flogin_src%2Fmain.c;h=23d932948629b82bafb72d13a7cab90da18ea973;hb=341d51ca40a4a26ed89914feaacc940c64b22197;hp=4059953f817bab8975fc1d6c414704b3c14045d8;hpb=a35eaf0fa118a86ed847ca0bbb2534d956de46f2;p=tpg%2Facess2.git diff --git a/Usermode/Applications/login_src/main.c b/Usermode/Applications/login_src/main.c index 4059953f..23d93294 100644 --- a/Usermode/Applications/login_src/main.c +++ b/Usermode/Applications/login_src/main.c @@ -9,8 +9,8 @@ #define BUFLEN 1024 // === PROTOTYPES === -char *GetUsername(); -char *GetPassword(); +char *GetUsername(void); +char *GetPassword(void); // === CODE === int main(int argc, char *argv[]) @@ -29,9 +29,12 @@ int main(int argc, char *argv[]) for(;;) { sUsername = GetUsername(); - if(!sUsername) continue; + if(!sUsername || !sUsername[0]) continue; sPassword = GetPassword(); - if(!sPassword) continue; + if(!sPassword) { + free(sUsername); + continue; + } if( (uid = ValidateUser(sUsername, sPassword)) == -1 ) { printf("\nInvalid username or password\n"); @@ -65,6 +68,7 @@ int main(int argc, char *argv[]) // Clear graphics mode struct ptymode mode = {.InputMode = PTYIMODE_ECHO|PTYIMODE_CANON,.OutputMode=0}; _SysIOCtl(0, PTY_IOCTL_SETMODE, &mode); + fprintf(stderr, "\x1b[R"); } return 0; @@ -117,7 +121,7 @@ char *_GetString(int bEcho) mode.InputMode |= PTYIMODE_ECHO; _SysIOCtl(0, PTY_IOCTL_SETMODE, &mode); } - + return strdup(ret); } @@ -126,10 +130,6 @@ char *_GetString(int bEcho) */ char *GetUsername() { - char ret[BUFLEN] = {0}; - int pos = 0; - char ch; - // Prompt the user printf("Username: "); fflush(stdout);