|
|
#endif | #endif |
#if defined (AUTHENTICATION) | #if defined (AUTHENTICATION) |
if (auth_level >= 0 && autologin == AUTH_VALID) { | if (auth_level >= 0 && autologin == AUTH_VALID) { |
|
if (name[0] == '-') { |
|
/* Authenticated and authorized to log in to an account |
|
* starting with '-'? Even if that unlikely case comes |
|
* to pass, the current program will not patse the |
|
* resulting command line properly. |
|
*/ |
|
syslog(LOG_ERR, "user name can not start with '-'"); |
|
fatal(net, "user name can not start with '-'"); |
|
exit(1); |
|
} |
# if !defined(NO_LOGIN_F) | # if !defined(NO_LOGIN_F) |
#if defined(LOGIN_CAP_F) | #if defined(LOGIN_CAP_F) |
argv = addarg(argv, "-F"); | argv = addarg(argv, "-F"); |
|
|
} else | } else |
#endif | #endif |
if (getenv("USER")) { | if (getenv("USER")) { |
argv = addarg(argv, getenv("USER")); |
char *user = getenv("USER"); |
|
if (user[0] == '-') { |
|
/* "telnet -l-x ..." */ |
|
syslog(LOG_ERR, "user name cannot start with '-'"); |
|
fatal(net, "user name cannot start with '-'"); |
|
exit(1); |
|
} |
|
argv = addarg(argv, user); |
#if defined(LOGIN_ARGS) && defined(NO_LOGIN_P) | #if defined(LOGIN_ARGS) && defined(NO_LOGIN_P) |
{ | { |
register char **cpp; | register char **cpp; |
for (cpp = environ; *cpp; cpp++) | for (cpp = environ; *cpp; cpp++) |
argv = addarg(argv, *cpp); |
if ((*cpp[0] != '-') |
|
argv = addarg(argv, *cpp); |
} | } |
#endif | #endif |
/* | /* |