patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
247 lines
6.2 KiB
Diff
247 lines
6.2 KiB
Diff
Index: crypto/kerberosIV/lib/krb/kdc_reply.c
|
|
===================================================================
|
|
RCS file: /mnt/ncvs/src/crypto/kerberosIV/lib/krb/kdc_reply.c,v
|
|
retrieving revision 1.1.1.1.4.1
|
|
retrieving revision 1.1.1.1.4.2
|
|
diff -u -u -r1.1.1.1.4.1 -r1.1.1.1.4.2
|
|
--- crypto/kerberosIV/lib/krb/kdc_reply.c 2000/07/04 15:04:26 1.1.1.1.4.1
|
|
+++ crypto/kerberosIV/lib/krb/kdc_reply.c 2000/12/15 03:02:19 1.1.1.1.4.2
|
|
@@ -121,6 +121,9 @@
|
|
p += krb_get_int(p, &exp_date, 4, little_endian);
|
|
p++; /* master key version number */
|
|
p += krb_get_int(p, &clen, 2, little_endian);
|
|
+ if (reply->length - (p - reply->dat) < clen)
|
|
+ return INTK_PROT;
|
|
+
|
|
cip->length = clen;
|
|
memcpy(cip->dat, p, clen);
|
|
p += clen;
|
|
Index: crypto/kerberosIV/lib/krb/tf_util.c
|
|
===================================================================
|
|
RCS file: /mnt/ncvs/src/crypto/kerberosIV/lib/krb/tf_util.c,v
|
|
retrieving revision 1.1.1.1.4.1
|
|
retrieving revision 1.1.1.1.4.2
|
|
diff -u -u -r1.1.1.1.4.1 -r1.1.1.1.4.2
|
|
--- crypto/kerberosIV/lib/krb/tf_util.c 2000/07/04 15:04:27 1.1.1.1.4.1
|
|
+++ crypto/kerberosIV/lib/krb/tf_util.c 2000/12/15 03:01:31 1.1.1.1.4.2
|
|
@@ -249,20 +249,6 @@
|
|
int
|
|
tf_create(char *tf_name)
|
|
{
|
|
- struct stat statbuf;
|
|
- char garbage[BUFSIZ];
|
|
-
|
|
- fd = open(tf_name, O_RDWR | O_BINARY, 0);
|
|
- if (fd >= 0) {
|
|
- if (fstat (fd, &statbuf) == 0) {
|
|
- int i;
|
|
-
|
|
- for (i = 0; i < statbuf.st_size; i += sizeof(garbage))
|
|
- write (fd, garbage, sizeof(garbage));
|
|
- }
|
|
- close (fd);
|
|
- }
|
|
-
|
|
if (unlink (tf_name) && errno != ENOENT)
|
|
return TKT_FIL_ACC;
|
|
|
|
Index: crypto/kerberosIV/lib/krb/extra.c
|
|
===================================================================
|
|
RCS file: /mnt/ncvs/src/crypto/kerberosIV/lib/krb/extra.c,v
|
|
retrieving revision 1.1.1.2.4.1
|
|
retrieving revision 1.1.1.2.4.2
|
|
diff -u -u -r1.1.1.2.4.1 -r1.1.1.2.4.2
|
|
--- crypto/kerberosIV/lib/krb/extra.c 2000/07/04 15:04:25 1.1.1.2.4.1
|
|
+++ crypto/kerberosIV/lib/krb/extra.c 2000/12/15 03:01:04 1.1.1.2.4.2
|
|
@@ -70,30 +70,6 @@
|
|
|
|
#ifndef WIN32
|
|
|
|
-struct obsolete {
|
|
- const char *from;
|
|
- const char *to;
|
|
-} obsolete [] = {
|
|
- { "KDC_TIMESYNC", "kdc_timesync" },
|
|
- { "KRB_REVERSE_DIRECTION", "reverse_lsb_test"},
|
|
- { "krb4_proxy", "krb4_proxy"},
|
|
- { NULL, NULL }
|
|
-};
|
|
-
|
|
-static void
|
|
-check_obsolete(void)
|
|
-{
|
|
- struct obsolete *r;
|
|
- for(r = obsolete; r->from; r++) {
|
|
- if(getenv(r->from)) {
|
|
- krb_warning("The environment variable `%s' is obsolete;\n"
|
|
- "set `%s' in your `krb.extra' file instead\n",
|
|
- r->from, r->to);
|
|
- define_variable(r->to, getenv(r->from));
|
|
- }
|
|
- }
|
|
-}
|
|
-
|
|
static int
|
|
read_extra_file(void)
|
|
{
|
|
@@ -103,7 +79,6 @@
|
|
if(_krb_extra_read)
|
|
return 0;
|
|
_krb_extra_read = 1;
|
|
- check_obsolete();
|
|
while(krb_get_krbextra(i++, file, sizeof(file)) == 0) {
|
|
FILE *f = fopen(file, "r");
|
|
if(f == NULL)
|
|
Index: crypto/telnet/telnetd/sys_term.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/crypto/telnet/telnetd/sys_term.c,v
|
|
retrieving revision 1.5.2.2
|
|
retrieving revision 1.5.2.3
|
|
diff -u -r1.5.2.2 -r1.5.2.3
|
|
--- crypto/telnet/telnetd/sys_term.c 1999/08/29 16:18:10 1.5.2.2
|
|
+++ crypto/telnet/telnetd/sys_term.c 2000/12/15 03:00:11 1.5.2.3
|
|
@@ -1839,27 +1839,48 @@
|
|
/*
|
|
* scrub_env()
|
|
*
|
|
- * Remove a few things from the environment that
|
|
- * don't need to be there.
|
|
+ * We only accept the environment variables listed below.
|
|
*/
|
|
void
|
|
scrub_env()
|
|
{
|
|
- register char **cpp, **cpp2;
|
|
+ static const char *reject[] = {
|
|
+ "TERMCAP=/",
|
|
+ NULL
|
|
+ };
|
|
|
|
- for (cpp2 = cpp = environ; *cpp; cpp++) {
|
|
-#ifdef __FreeBSD__
|
|
- if (strncmp(*cpp, "LD_LIBRARY_PATH=", 16) &&
|
|
- strncmp(*cpp, "LD_PRELOAD=", 11) &&
|
|
-#else
|
|
- if (strncmp(*cpp, "LD_", 3) &&
|
|
- strncmp(*cpp, "_RLD_", 5) &&
|
|
- strncmp(*cpp, "LIBPATH=", 8) &&
|
|
-#endif
|
|
- strncmp(*cpp, "IFS=", 4))
|
|
- *cpp2++ = *cpp;
|
|
- }
|
|
- *cpp2 = 0;
|
|
+ static const char *accept[] = {
|
|
+ "XAUTH=", "XAUTHORITY=", "DISPLAY=",
|
|
+ "TERM=",
|
|
+ "EDITOR=",
|
|
+ "PAGER=",
|
|
+ "LOGNAME=",
|
|
+ "POSIXLY_CORRECT=",
|
|
+ "PRINTER=",
|
|
+ NULL
|
|
+ };
|
|
+
|
|
+ char **cpp, **cpp2;
|
|
+ const char **p;
|
|
+
|
|
+ for (cpp2 = cpp = environ; *cpp; cpp++) {
|
|
+ int reject_it = 0;
|
|
+
|
|
+ for(p = reject; *p; p++)
|
|
+ if(strncmp(*cpp, *p, strlen(*p)) == 0) {
|
|
+ reject_it = 1;
|
|
+ break;
|
|
+ }
|
|
+ if (reject_it)
|
|
+ continue;
|
|
+
|
|
+ for(p = accept; *p; p++)
|
|
+ if(strncmp(*cpp, *p, strlen(*p)) == 0)
|
|
+ break;
|
|
+ if(*p != NULL)
|
|
+ *cpp2++ = *cpp;
|
|
+ }
|
|
+ *cpp2 = NULL;
|
|
}
|
|
|
|
/*
|
|
Index: libexec/telnetd/sys_term.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/libexec/telnetd/sys_term.c,v
|
|
retrieving revision 1.20.2.4
|
|
retrieving revision 1.20.2.5
|
|
diff -u -r1.20.2.4 -r1.20.2.5
|
|
--- libexec/telnetd/sys_term.c 2000/11/20 03:09:37 1.20.2.4
|
|
+++ libexec/telnetd/sys_term.c 2000/12/15 02:59:15 1.20.2.5
|
|
@@ -1778,34 +1778,48 @@
|
|
/*
|
|
* scrub_env()
|
|
*
|
|
- * Remove a few things from the environment that
|
|
- * don't need to be there.
|
|
+ * We only accept the environment variables listed below.
|
|
*/
|
|
void
|
|
scrub_env()
|
|
{
|
|
- register char **cpp, **cpp2;
|
|
+ static const char *reject[] = {
|
|
+ "TERMCAP=/",
|
|
+ NULL
|
|
+ };
|
|
|
|
- for (cpp2 = cpp = environ; *cpp; cpp++) {
|
|
-#ifdef __FreeBSD__
|
|
- if (strncmp(*cpp, "LD_LIBRARY_PATH=", 16) &&
|
|
- strncmp(*cpp, "LD_PRELOAD=", 11) &&
|
|
-#else
|
|
- if (strncmp(*cpp, "LD_", 3) &&
|
|
- strncmp(*cpp, "_RLD_", 5) &&
|
|
- strncmp(*cpp, "LIBPATH=", 8) &&
|
|
-#endif
|
|
- strncmp(*cpp, "LOCALDOMAIN=", 12) &&
|
|
- strncmp(*cpp, "RES_OPTIONS=", 12) &&
|
|
- strncmp(*cpp, "TERMINFO=", 9) &&
|
|
- strncmp(*cpp, "TERMINFO_DIRS=", 14) &&
|
|
- strncmp(*cpp, "TERMPATH=", 9) &&
|
|
- strncmp(*cpp, "TERMCAP=/", 9) &&
|
|
- strncmp(*cpp, "ENV=", 4) &&
|
|
- strncmp(*cpp, "IFS=", 4))
|
|
- *cpp2++ = *cpp;
|
|
- }
|
|
- *cpp2 = 0;
|
|
+ static const char *accept[] = {
|
|
+ "XAUTH=", "XAUTHORITY=", "DISPLAY=",
|
|
+ "TERM=",
|
|
+ "EDITOR=",
|
|
+ "PAGER=",
|
|
+ "LOGNAME=",
|
|
+ "POSIXLY_CORRECT=",
|
|
+ "PRINTER=",
|
|
+ NULL
|
|
+ };
|
|
+
|
|
+ char **cpp, **cpp2;
|
|
+ const char **p;
|
|
+
|
|
+ for (cpp2 = cpp = environ; *cpp; cpp++) {
|
|
+ int reject_it = 0;
|
|
+
|
|
+ for(p = reject; *p; p++)
|
|
+ if(strncmp(*cpp, *p, strlen(*p)) == 0) {
|
|
+ reject_it = 1;
|
|
+ break;
|
|
+ }
|
|
+ if (reject_it)
|
|
+ continue;
|
|
+
|
|
+ for(p = accept; *p; p++)
|
|
+ if(strncmp(*cpp, *p, strlen(*p)) == 0)
|
|
+ break;
|
|
+ if(*p != NULL)
|
|
+ *cpp2++ = *cpp;
|
|
+ }
|
|
+ *cpp2 = NULL;
|
|
}
|
|
|
|
/*
|