getpwnam bug

Jim Hutchison hutch at sdcsvax.UUCP
Mon Sep 1 07:10:40 AEST 1986


In article <3343 at brl-smoke.ARPA> rbj at icst-cmr.arpa (Root Boy Jim) writes:
>
>	Anybody ever had a blank line as the first line in your
>	password file? It happened to me a few weeks ago and the system
>	would not let any user at all log on. Su did not work either.
>	In looking at the source I found the following situation:
>
>		getty: calls
>		  login: calls
>		    getpwnam: calls
>		      getpwent: calls
>			fgetpwent: which does the following 
>	
>			p = fgets(line, BUFSIZ, f);
>			if (p == NULL)
>	  		    return(NULL);
>	 
>	Since fgets returns NULL if error or end-of-file or if p read 0
>	bytes it seems that the search done by fgetpwent terminates
>	without searching any further, even though there are further
>	valid entries. Is this the way getpwnam always works? (I am
>	currently running 4.2BSD/SYS III on a vax 780). I have not seen
>	any bug reports filed on this particular problem. Now while
>	getting a null entry in the passwd file may be an infrequent
>	occurence the only way to recover this is to crash the system
>	and come up single-user to repair the passwd file. Thankfully
>	my system doesn't prompt for an id coming into single-user mode
>	like some systems I've seen. Under that case I think you would
>	have no recourse but to restore from a backup.
>
>You are wrong on both accounts. I added a blank line at the head
>of my /etc/passwd with no problems. Also, fgets returns a pointer
>to a line containing only a newline when reading a blank line.
>
>We run vanilla 4.2BSD on a VAX 750. Perhaps it is the SYS III part
>of your system that is messing up, altho I doubt for the reasons
>you mention. Fgets is too old a routine to have variations.
>
>	What I think is odd here is that there are other version of
>	getpwnam in other utilites that implement the read differently.
>	For example:  csh/getpwnam implements the fgets as i =
>	read(pwf, line, BUFSIZ).
>
>	Anybody know why csh chose not to use the pw routines?
>			
>Perhaps it is because of efficiency.
>
>	(Root Boy) Jim Cottrell		<rbj at icst-cmr.arpa>
>	..I have read the INSTRUCTIONS...
>
>P.S. Say hi to my dad (same name) if you know him.


-- 
    Jim Hutchison   UUCP:	{dcdwest,ucbvax}!sdcsvax!hutch
		    ARPA:	Hutch at sdcsvax.ucsd.edu
	"The fog crept in on little cats feet" -CS



More information about the Comp.unix.wizards mailing list