Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: su/ssh localhost problems



On May 2,  1:40pm, tk%giga.or.at@localhost (Thomas Klausner) wrote:
-- Subject: Re: su/ssh localhost problems

| On Wed, May 02, 2012 at 07:33:57AM -0400, Christos Zoulas wrote:
| > Why is eol NUL, not <undef>? (_POSIX_VDISABLE)?
| 
| On the machine itself I get:
| speed 38400 baud; rows 73; columns 175; line = 0;
| intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = 
<undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase 
= ^W; lnext = ^V;
| flush = ^O; min = 1; time = 0;
| -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
| -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff 
-iuclc -ixany -imaxbel iutf8
| opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 
ff0
| isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt 
echoctl echoke

That is correct.

| On the first hop, a Linux, I get:
| speed 38400 baud; rows 73; columns 175; line = 0;
| intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = 
<undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase 
= ^W; lnext = ^V;
| flush = ^O; min = 1; time = 0;
| -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
| -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff 
-iuclc -ixany -imaxbel -iutf8
| opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 
ff0
| isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt 
echoctl echoke

This is correct too.

| On the next hop, a NetBSD machine, I get:
| speed 38400 baud; 73 rows; 175 columns;
| lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
|         -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
|         -extproc
| iflags: -istrip icrnl -inlcr -igncr ixon ixoff -ixany -imaxbel -ignbrk
|         brkint -inpck -ignpar -parmrk
| oflags: opost onlcr -ocrnl oxtabs onocr onlret
| cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
|         -cdtrcts
| cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
|         erase = ^?; intr = ^C; kill = ^U; lnext = ^V; min = 1; quit = ^\;
|         reprint = ^R; start = ^Q; status = ^T; stop = ^S; susp = ^Z;
|         time = 0; werase = ^W;
| 
| That machine is running NetBSD-5.99.40/amd64. On that machine I can still do 
'su' successfully.

This is bad now. eol went from _POSIX_VDISABLE to NUL from Linux to NetBSD.
It still works because the getpass there does not pay attention to the tty
characters.

| On the final machine, running NetBSD-6.99.6/amd64, I get:
| speed 38400 baud; 73 rows; 175 columns;
| lflags: icanon -isig iexten echo -echoe -echok -echoke -echonl -echoctl
|         -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
|         -extproc
| iflags: -istrip icrnl -inlcr -igncr ixon ixoff -ixany -imaxbel -ignbrk
|         brkint -inpck -ignpar -parmrk
| oflags: opost onlcr -ocrnl oxtabs onocr onlret
| cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
|         -cdtrcts
| cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
|         erase = ^?; intr = ^C; kill = ^U; lnext = ^V; min = 1; quit = ^\;
|         reprint = ^R; start = ^Q; status = ^T; stop = ^S; susp = ^Z;
|         time = 0; werase = ^W;
| 

The NUL propagated correctly, but the new getpass() pays attention to eol,
and thinks that NUL is ok. Anyway, I fixed it now so that either NUL or
_POSIX_VDISABLE make it use the default builtin eol char.

christos


Home | Main Index | Thread Index | Old Index