--- /usr/local/src/elkscmd/sys_utils/login.c Thu Aug 26 13:05:54 1999
+++ Develop/elkscmd/sys_utils/login.c Mon Dec 6 19:01:31 1999
@@ -98,9 +98,8 @@
struct utmp entry;
struct utmp * entryp;
struct utmp newentry;
- char lbuf[UT_NAMESIZE], pbuf[20], salt[3];
- char * tty_name;
- int n;
+ char lbuf[UT_NAMESIZE], *pswd, salt[3];
+ char *tty_name, *p;
for (;;) {
@@ -109,10 +108,8 @@
if (read(STDIN_FILENO, lbuf, sizeof(lbuf)) < 1)
{
exit(1);
}
- n = strlen(lbuf)-1;
- if (lbuf[n] == '\n') {
- lbuf[n] = 0;
- }
+ p = strchr(lbuf, '\n');
+ if(p) *p = 0;
} else {
strncpy(lbuf, argv[1], UT_NAMESIZE);
lbuf[UT_NAMESIZE - 1] = '\0';
@@ -144,19 +141,15 @@
if ((pwd != NULL) && (pwd->pw_passwd[0] == 0)) {
login(pwd, entryp);
}
- write(STDOUT_FILENO,"Password: ",10);
- if (read(STDIN_FILENO, pbuf, sizeof(pbuf)) < 1) {
- exit(1);
- }
- n = strlen(pbuf)-1;
- if (pbuf[n] == '\n') {
- pbuf[n] = 0;
- }
+ pswd = getpass("Password: ");
+ write(STDOUT_FILENO,"\n",1);
+ p = strchr(lbuf, '\n');
+ if(p) *p = 0;
if (pwd != NULL) {
salt[0]=pwd->pw_passwd[0];
salt[1]=pwd->pw_passwd[1];
salt[2]=0;
- if (!strcmp(crypt(pbuf,salt),pwd->pw_passwd)) {
+ if (!strcmp(crypt(pswd,salt),pwd->pw_passwd)) {
login(pwd, entryp);
}
}