Subject: Re: why a double login??
To: None <noud@knot.nl>
From: None <greywolf@defender.VAS.viewlogic.com>
List: current-users
Date: 04/24/1996 14:09:30
[Sorry about the dup mail -- hit ^C^C instead of ^X^X :-)]

Noud sez:

#  Teletype terminals and the like(?)

No, but we discovered the problems because LSI adm3s come up with
the CAPS LOCK key active.

#  Is a VAX 11/750 a pdp 11?

One of many successors thereto.

#  login: FOOBAR
#  password:
#  login: FOOBAR
#  password:

#  and then we're inside.

Looks like it doesn't do the conversion properly...

#  #if XXX
			   if (upper || UC)
				   tmode.sg_flags |= LCASE;
			   if (lower || LC)
				   tmode.sg_flags &= ~LCASE;
#  #endif

#  I don't know why #if XXX is there. Why is it there?

Backward combatability.

#  >If you're getting lowercase responses, then only half the problem has been
#  >fixed.

#  That's what it does, convert to lowercase, but not letting you in.
#  Then the second time, behind getname(), it does let you in with the
#  upper-case name.

That's definitely a bug.  Either it should convert all UC -> LC and set
the terminak modes accordingly, or it should do no conversions and perform
an explicit match.  To convert it without warning is not acceptable,
if for no other reason than it is unexpected behaviour, as we have discovered.
:-)

#  >Another fix would be to not use ALL uppercase logins; i.e. maybe capitalize
#  >them if necessary?  (This would be The Right Way, actually.)

#  All uppercase logins are a 'no no' in the unix-world??

Well, no and yes -- see above.

#  Just change them with vipw, and leave it to that??
#  (creating a discrepance between RW and passwd.master)

What's RW?

#  Shouldn't i trace again, using f.i. syslog() after getname()??

That'd work...

#  Shouldn't it be: upper && (UC && !LC) => tolower => inside and
#		    upper && !(UC && !LC) => upper && (!UC || LC) => inside?
#  I don't know the precidence of those &&/|| things,
#  but that's diff. from the source:
#		    upper && !LC || UC => tolower

When in doubt of precedence, use parentheses to force the precedence you want.

#  so i have to check my gettytab (i think U/LC are set to default) and
#  retrace the getty code...

#  please comment,
#  ~n

				--*greywolf;
--
USL, Microsoft, IBM:  The knights who say "NIH"!