AxWin3 - Fixed overflow caused by using width in height calculations
[tpg/acess2.git] / Usermode / Applications / login_src / main.c
index 391d5bc..e859bfe 100644 (file)
@@ -17,10 +17,12 @@ int main(int argc, char *argv[])
         int    pid, uid = 0;
         int    status = 0;
        tUserInfo       *uinfo;
-       
+
+       printf("\x1B[?25h");    // Re-enable the cursor 
+//     printf("\x1B[2J");      // Clear Screen
+
        for(;;)
        {
-               printf("\x1B[2J");      // Clear Screen
                // Validate User
                for(;;)
                {
@@ -28,7 +30,7 @@ int main(int argc, char *argv[])
                        sPassword = GetPassword();
                        if( (uid = ValidateUser(sUsername, sPassword)) == -1 )
                        {
-                               printf("\nInvalid username or password for '%s'\n", sUsername);
+                               printf("\nInvalid username or password\n");
                                free(sUsername);
                                free(sPassword);
                        }
@@ -57,7 +59,8 @@ int main(int argc, char *argv[])
                        child_argv[0] = uinfo->Shell;
                        // Set Environment
                        setgid(uinfo->GID);
-                       setuid(uid);
+                       //setuid(uid);
+                       setuid(uinfo->UID);
                        
                        execve(uinfo->Shell, child_argv, child_envp);
                        exit(-1);
@@ -86,6 +89,7 @@ char *GetUsername()
        while( (ch = fgetc(stdin)) != -1 && ch != '\n' )
        {
                if(ch == '\b') {
+                       if( pos <= 0 )  continue;
                        pos --;
                        ret[pos] = '\0';
                }
@@ -121,6 +125,7 @@ char *GetPassword()
        while( (ch = fgetc(stdin)) != -1 && ch != '\n' )
        {
                if(ch == '\b') {
+                       if( pos <= 0 )  continue;
                        pos --;
                        ret[pos] = '\0';
                }

UCC git Repository :: git.ucc.asn.au