Subject: Re: illegal variable name error upon login
To: None <paul@whooppee.com>
From: Zafer Aydogan <zafer@aydogan.de>
List: current-users
Date: 07/16/2007 00:09:39
2007/7/15, Paul Goyette <paul@whooppee.com>:
> I got that recently when I updated to 4.99.23 and traced it down to the
> 'alias hup ...' line in ~root/.cshrc I'm not sure if it was the $< part
> or the \!$ part.
>
> After a couple logins, it went away before I could find the root cause.
>
>
> On Sat, 14 Jul 2007, Zafer Aydogan wrote:
>
> > Hello list,
> >
> > I'm getting this error, but I don't know what causes it.
> > If I login (csh), the message "Illegal variable name" is printed.
> > Screenshot: http://aydogan.org/login/illegal_variable_name.png
> >
> > I trussed it. The end looks like this:
> >
> > 435 1 csh ioctl(0x3, FIOCLEX, 0) = 0
> > 435 1 csh __fstat30(0x3, 0xbfbfecf4) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfedbc, 0xbfbfedac) = 0
> > 435 1 csh ioctl(0x3, TIOCGETA, 0xbfbfec70) Err#25 ENOTTY
> > 435 1 csh __sigprocmask14(0x3, 0xbfbfedac, 0) = 0
> > 435 1 csh lseek(0x3, 0, 0, 0, 0x1) = 0
> > 435 1 csh lseek(0x3, 0, 0, 0, 0x1) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh read(0x3, 0xbfbfbb5b, 0x1000) = 974
> > "#\t$NetBSD: dot.cshrc,v 1.16 2006/08/31 22:33:14 hubertf Exp $\n\nali"
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh close(0) Err#9 EBADF
> > 435 1 csh dup(0x13) = 0
> > 435 1 csh ioctl(0, FIONCLEX, 0) = 0
> > 435 1 csh close(0x1) Err#9 EBADF
> > 435 1 csh dup(0x11) = 1
> > 435 1 csh ioctl(0x1, FIONCLEX, 0) = 0
> > 435 1 csh close(0x2) Err#9 EBADF
> > 435 1 csh dup(0x12) = 2
> > 435 1 csh ioctl(0x2, FIONCLEX, 0) = 0
> > 435 1 csh close(0) = 0
> > 435 1 csh close(0x1) = 0
> > 435 1 csh close(0x2) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh close(0) Err#9 EBADF
> > 435 1 csh dup(0x13) = 0
> > 435 1 csh ioctl(0, FIONCLEX, 0) = 0
> > 435 1 csh close(0x1) Err#9 EBADF
> > 435 1 csh dup(0x11) = 1
> > 435 1 csh ioctl(0x1, FIONCLEX, 0) = 0
> > 435 1 csh close(0x2) Err#9 EBADF
> > 435 1 csh dup(0x12) = 2
> > 435 1 csh ioctl(0x2, FIONCLEX, 0) = 0
> > 435 1 csh close(0) = 0
> > 435 1 csh close(0x1) = 0
> > 435 1 csh close(0x2) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh close(0) Err#9 EBADF
> > 435 1 csh dup(0x13) = 0
> > 435 1 csh ioctl(0, FIONCLEX, 0) = 0
> > 435 1 csh close(0x1) Err#9 EBADF
> > 435 1 csh dup(0x11) = 1
> > 435 1 csh ioctl(0x1, FIONCLEX, 0) = 0
> > 435 1 csh close(0x2) Err#9 EBADF
> > 435 1 csh dup(0x12) = 2
> > 435 1 csh ioctl(0x2, FIONCLEX, 0) = 0
> > 435 1 csh close(0) = 0
> > 435 1 csh close(0x1) = 0
> > 435 1 csh close(0x2) = 0
> > 435 1 csh __sigprocmask14(0, 0, 0x8068af8) = 0
> > 435 1 csh __sigprocmask14(0x2, 0xbfbfec88, 0) = 0
> > 435 1 csh __sigprocmask14(0x1, 0xbfbfec88, 0) = 0
> > 435 1 csh write(0x12, 0x806e800, 0x17) = 23
> > "Illegal variable name.\n"
> > 435 1 csh lseek(0x3, 0, 0, 0, 0x2) = 974
> > 435 1 csh __sigprocmask14(0x3#
> >
> > and in fact, if I remove .cshrc, the error is gone.
> > if I switch to /bin/sh or ksh, the error is gone aswell.
> >
> > Any ideas ?
> >
> > Zafer.
> >
>
> ----------------------------------------------------------------------
> | Paul Goyette | PGP DSS Key fingerprint: | E-mail addresses: |
> | Customer Service | FA29 0E3B 35AF E8AE 6651 | paul@whooppee.com |
> | Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette@juniper.net |
> ----------------------------------------------------------------------
>
Michael has filed a PR:
http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=36650
The problem seems to be that in the latest change of csh the private
type 'bool', which is
an int, was replaced by the _Bool type from stdbool. However, the 'bool'
type is used in csh to store small integers and not just boolean values.
Zafer.