4.3 /bin/passwd does not deal with /etc/shells properly
Arnold D. Robbins {EUCC}
arnold at emory.UUCP
Thu Oct 23 14:28:50 AEST 1986
[ My apologies if this has been seen before. If so, please ignore it. ]
Subject: 4.3 /bin/passwd does not deal with /etc/shells properly
Index: /usr/src/bin/passwd.c 4.3BSD
Description:
It is possible to request a shell that is valid as a new shell,
but /bin/passwd will claim it is no good.
Repeat-By:
Run passwd to request a new shell. Ask for a shell that is before
your old shell in the list in /etc/shells.
Fix:
Apply the following patch:
RCS file: RCS/passwd.c,v
retrieving revision 1.1
diff -c -r1.1 passwd.c
*** /tmp/,RCSt1007186 Wed Oct 22 18:05:08 1986
--- passwd.c Mon Aug 11 11:59:11 1986
***************
*** 1,9 ****
#ifndef lint
! static char *RCSid = "$Header: passwd.c,v 1.1 86/08/11 11:27:00 root Exp $";
#endif
/*
* $Log: passwd.c,v $
* Revision 1.1 86/08/11 11:27:00 root
* Initial revision
*
--- 1,12 ----
#ifndef lint
! static char *RCSid = "$Header: passwd.c,v 1.2 86/08/11 11:58:50 root Locked $";
#endif
/*
* $Log: passwd.c,v $
+ * Revision 1.2 86/08/11 11:58:50 root
+ * Fixed a bug in change shell code which did not reset the shells file.
+ *
* Revision 1.1 86/08/11 11:27:00 root
* Initial revision
*
***************
*** 328,333 ****
--- 331,337 ----
/*
* Allow user to give shell name w/o preceding pathname.
*/
+ endusershell ();
if (u == 0) {
valid = newshell;
} else {
***************
*** 345,350 ****
--- 349,355 ----
break;
}
}
+ endusershell(); /* bug fix, was missing */
if (valid == 0) {
printf("%s is unacceptable as a new shell.\n",
newshell);
--
Arnold Robbins
CSNET: arnold at emory BITNET: arnold at emoryu1
ARPA: arnold%emory.csnet at csnet-relay.arpa
UUCP: { akgua, decvax, gatech, sb1, sb6, sunatl }!emory!arnold
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list