aboutsummaryrefslogtreecommitdiff
path: root/contrib/opie/libopie/insecure.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/opie/libopie/insecure.c')
-rw-r--r--contrib/opie/libopie/insecure.c172
1 files changed, 0 insertions, 172 deletions
diff --git a/contrib/opie/libopie/insecure.c b/contrib/opie/libopie/insecure.c
deleted file mode 100644
index ba2a9dfaeb5a..000000000000
--- a/contrib/opie/libopie/insecure.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* insecure.c: The opieinsecure() library function.
-
-%%% portions-copyright-cmetz-96
-Portions of this software are Copyright 1996-1999 by Craig Metz, All Rights
-Reserved. The Inner Net License Version 2 applies to these portions of
-the software.
-You should have received a copy of the license with this software. If
-you didn't get a copy, you may request one from <license@inner.net>.
-
-Portions of this software are Copyright 1995 by Randall Atkinson and Dan
-McDonald, All Rights Reserved. All Rights under this copyright are assigned
-to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and
-License Agreement applies to this software.
-
- History:
-
- Modified by cmetz for OPIE 2.4. Do utmp checks on utmpx systems.
- Handle unterminated ut_host.
- Modified by cmetz for OPIE 2.31. Fixed a logic bug. Call endut[x]ent().
- Modified by cmetz for OPIE 2.3. Added result caching. Use
- __opiegetutmpentry(). Ifdef around ut_host check. Eliminate
- unused variable.
- Modified by cmetz for OPIE 2.2. Use FUNCTION declaration et al.
- Allow IP loopback. DISPLAY and ut_host must match exactly,
- not just the part before the colon. Added work-around for
- Sun CDE dtterm bug. Leave the environment as it was
- found. Use uname().
- Created at NRL for OPIE 2.2 from opiesubr.c. Fixed pointer
- assignment that should have been a comparison.
-
-$FreeBSD$
-
-*/
-#include "opie_cfg.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h> /* ANSI C standard library */
-#include <sys/param.h>
-#include <unistd.h>
-
-#if DOUTMPX
-#include <utmpx.h>
-#define utmp utmpx
-#define endutent endutxent
-#else
-#include <utmp.h>
-#endif /* DOUTMPX */
-
-#if HAVE_SYS_UTSNAME_H
-#include <sys/utsname.h>
-#endif /* HAVE_SYS_UTSNAME_H */
-
-#include "opie.h"
-
-char *remote_terms[] = { "xterm", "xterms", "kterm", NULL };
-
-int opieinsecure FUNCTION_NOARGS
-{
-#ifndef NO_INSECURE_CHECK
- char *display_name;
- char *s;
- char *term_name;
- int insecure = 0;
-#if HAVE_UT_HOST || DOUTMPX
- struct utmp utmp;
-#endif /* HAVE_UT_HOST || DOUTMPX */
- static int result = -1;
-
- if (result != -1)
- return result;
-
- if (getenv("SSH_CLIENT") != NULL)
- return (result = 0);
- display_name = (char *) getenv("DISPLAY");
- term_name = (char *) getenv("TERM");
-
- if (display_name) {
- insecure = 1;
- if (s = strchr(display_name, ':')) {
- int n = s - display_name;
- if (!n)
- insecure = 0;
- else {
- if (!strncmp("unix", display_name, n))
- insecure = 0;
- else if (!strncmp("localhost", display_name, n))
- insecure = 0;
- else if (!strncmp("loopback", display_name, n))
- insecure = 0;
- else if (!strncmp("127.0.0.1", display_name, n))
- insecure = 0;
- else {
- struct utsname utsname;
-
- if (!uname(&utsname)) {
- if (!strncmp(utsname.nodename, display_name, n))
- insecure = 0;
- else {
- if (s = strchr(display_name, '.')) {
- int n2 = s - display_name;
- if (n < n2)
- n2 = n;
- if (!strncmp(utsname.nodename, display_name, n2))
- insecure = 0;
- } /* endif display_name is '.' */
- } /* endif hostname != display_name */
- } /* endif was able to get hostname */
- } /* endif display_name == UNIX */
- }
- }
- } /* endif display_name == ":" */
- if (insecure)
- return (result = 1);
-
- /* If no DISPLAY variable exists and TERM=xterm,
- then we probably have an xterm executing on a remote system
- with an rlogin or telnet to our system. If it were a local
- xterm, then the DISPLAY environment variable would
- have to exist. rja */
- if (!display_name && term_name) {
- int i;
- for (i = 0; remote_terms[i]; i++)
- if (!strcmp(term_name, remote_terms[i]))
- return (result = 1);
- };
-
-#if HAVE_UT_HOST || DOUTMPX
- if (isatty(0)) {
- memset(&utmp, 0, sizeof(struct utmp));
- {
- int i = __opiegetutmpentry(ttyname(0), &utmp);
- endutent();
- if (!i && utmp.ut_host[0]) {
- char host[sizeof(utmp.ut_host) + 1];
- insecure = 1;
-
- strncpy(host, utmp.ut_host, sizeof(utmp.ut_host));
- host[sizeof(utmp.ut_host)] = 0;
-
- if (s = strchr(host, ':')) {
- int n = s - host;
- if (!n)
- insecure = 0;
- else
- if (display_name) {
- if (!strncmp(host, display_name, n))
- insecure = 0;
-#if 1 /* def SOLARIS */
- else
- if (s = strchr(host, ' ')) {
- *s = ':';
- if (s = strchr(s + 1, ' '))
- *s = '.';
- if (!strncmp(host, display_name, n))
- insecure = 0;
- }
-#endif /* SOLARIS */
- }
- }
- }
- };
- };
-#endif /* HAVE_UT_HOST || DOUTMPX */
- if (insecure)
- return (result = 1);
-
- return (result = 0);
-#else /* NO_INSECURE_CHECK */
- return 0;
-#endif /* NO_INSECURE_CHECK */
-}