Kernel - Cleaning up messages
[tpg/acess2.git] / Usermode / Applications / login_src / main.c
index 391d5bc..8774298 100644 (file)
@@ -18,9 +18,10 @@ int main(int argc, char *argv[])
         int    status = 0;
        tUserInfo       *uinfo;
        
+       printf("\x1B[2J");      // Clear Screen
+
        for(;;)
        {
-               printf("\x1B[2J");      // Clear Screen
                // Validate User
                for(;;)
                {
@@ -28,7 +29,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);
                        }
@@ -45,6 +46,8 @@ int main(int argc, char *argv[])
                        return -1;
                }
                
+               printf("pid = %i\n", pid);
+               
                // Spawn shell in a child process
                if(pid == 0)
                {
@@ -57,7 +60,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 +90,7 @@ char *GetUsername()
        while( (ch = fgetc(stdin)) != -1 && ch != '\n' )
        {
                if(ch == '\b') {
+                       if( pos <= 0 )  continue;
                        pos --;
                        ret[pos] = '\0';
                }
@@ -121,6 +126,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