pullup from 1.2.1 release
authorKen Raeburn <raeburn@mit.edu>
Sat, 1 Jul 2000 03:48:01 +0000 (03:48 +0000)
committerKen Raeburn <raeburn@mit.edu>
Sat, 1 Jul 2000 03:48:01 +0000 (03:48 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12502 dc483132-0cff-0310-8789-dd5450dbe970

27 files changed:
README
doc/ChangeLog
doc/admin.texinfo
doc/api/ChangeLog
doc/api/Makefile
doc/build.texinfo
src/ChangeLog
src/aclocal.m4
src/appl/bsd/ChangeLog
src/appl/bsd/login.c
src/appl/bsd/rcp.M
src/appl/bsd/rlogin.M
src/appl/bsd/rsh.M
src/config/ChangeLog
src/config/win-pre.in
src/kadmin/server/ChangeLog
src/kadmin/server/server_stubs.c
src/lib/gssapi/krb5/ChangeLog
src/lib/gssapi/krb5/init_sec_context.c
src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/conv_princ.c
src/lib/rpc/ChangeLog
src/lib/rpc/svc_auth_gssapi.c
src/lib/rpc/unit-test/ChangeLog
src/lib/rpc/unit-test/server.c
src/windows/ChangeLog
src/windows/README

diff --git a/README b/README
index 19b193ec614a3da3df52ddfc94eaa6f977b8ab59..3e03b95316704f923382e88c73534204639c51f2 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 these were the
-                  Kerberos Version 5, Release 1.1
+                  Kerberos Version 5, Release 1.2
 
                            Release Notes
 which will be updated before the next release by
@@ -9,11 +9,11 @@ Unpacking the Source Distribution
 ---------------------------------
 
 The source distribution of Kerberos 5 comes in three gzipped tarfiles,
-krb5-1.1.src.tar.gz, krb5-1.1.doc.tar.gz, and krb5-1.1.crypto.tar.gz.
-The krb5-1.1.doc.tar.gz contains the doc/ directory and this README
-file.  The krb5-1.1.src.tar.gz contains the src/ directory and this
+krb5-1.2.src.tar.gz, krb5-1.2.doc.tar.gz, and krb5-1.2.crypto.tar.gz.
+The krb5-1.2.doc.tar.gz contains the doc/ directory and this README
+file.  The krb5-1.2.src.tar.gz contains the src/ directory and this
 README file, except for the crypto library sources, which are in
-krb5-1.1.crypto.tar.gz.
+krb5-1.2.crypto.tar.gz.
 
 Instruction on how to extract the entire distribution follow.  These
 directions assume that you want to extract into a directory called
@@ -23,21 +23,21 @@ If you have the GNU tar program and gzip installed, you can simply do:
 
        mkdir DIST
        cd DIST
-       gtar zxpf krb5-1.1.src.tar.gz
-       gtar zxpf krb5-1.1.crypto.tar.gz
-       gtar zxpf krb5-1.1.doc.tar.gz
+       gtar zxpf krb5-1.2.src.tar.gz
+       gtar zxpf krb5-1.2.crypto.tar.gz
+       gtar zxpf krb5-1.2.doc.tar.gz
 
 If you don't have GNU tar, you will need to get the FSF gzip
 distribution and use gzcat:
 
        mkdir DIST
        cd DIST
-       gzcat krb5-1.1.src.tar.gz | tar xpf -
-       gzcat krb5-1.1.crypto.tar.gz | tar xpf -
-       gzcat krb5-1.1.doc.tar.gz | tar xpf -
+       gzcat krb5-1.2.src.tar.gz | tar xpf -
+       gzcat krb5-1.2.crypto.tar.gz | tar xpf -
+       gzcat krb5-1.2.doc.tar.gz | tar xpf -
 
-Both of these methods will extract the sources into DIST/krb5-1.1/src
-and the documentation into DIST/krb5-1.1/doc.
+Both of these methods will extract the sources into DIST/krb5-1.2/src
+and the documentation into DIST/krb5-1.2/doc.
 
 Building and Installing Kerberos 5
 ----------------------------------
@@ -73,50 +73,170 @@ krb5-bugs@mit.edu.
 Notes, Major Changes, and Known Bugs
 ------------------------------------
 
-* Triple DES support is included; however, it is only usable for
-  service keys at the moment, due to a large number of compatibility
-  issues.  For example, the GSSAPI library has some (buggy) support
-  for a triple DES session key, but it is intentionally disabled.
-  ** Do not use triple-DES in your config files except as described in
-  ** the documentation.
-
-* The principal database now uses the btree backend of Berkeley DB.
-  This should result in improved KDC performance.
-
-* The lib/rpc tests do not appear to work under NetBSD-1.4, for
-  reasons that are not completely clear at the moment, but probably
-  have something to do with portmapper interfacing.  This should not
-  affect other operations, such as kadmind operation.
-
-* Shared library builds are under a new framework; at this point only
-  Solaris (2.x), Irix (6.5), NetBSD (1.4 i386), and possibly Linux are
-  known to work.  All other working shared library builds may be
-  figments of your imagination.
-
-* Many existing databases, especially those converted from krb4
-  original databases, may contain expiration dates in 1999.  You
-  should make sure to update these expiration dates, and also change
-  any config file entries that have two-digit years.
-
-* Hardware preauthentication is known to be broken; this will be fixed
-  in an upcoming release.
-
-* krb524d now defaults to forking into the background; use
-  "krb524d -nofork" to avoid forking.
-
-* Not all reported bugs have been fixed in this release, due to time
-  constraints.  We are planning to make another release in the near
-  future with more complete triple DES support, and additional
-  bugfixes.  Many of the bugs in our database are reported against
-  what is now quite old code, or require hardware that we do not have,
-  which make them difficult to reproduce and debug.  We will work on
-  these older bugs and some externally submitted patches for the
-  following release.
+* Triple DES support, for session keys as well as user or service
+  keys, should be nearly complete in this release.  Much of the work
+  that has been needed is generic multiple-cryptosystem support, so
+  the addition of another cryptosystem should be much easier.
+
+  * GSSAPI support for 3DES has been added.  An Internet Draft is
+    being worked on that will describe how this works; it is not
+    currently standardized.  Some backwards-compatibility issues in
+    this area mean that enabling 3DES support must be done with
+    caution; service keys that are used for GSSAPI must not be updated
+    to 3DES until the services themselves are upgraded to support 3DES
+    under GSSAPI.
+
+* DNS support for locating KDCs is enabled by default.  DNS support
+  for looking up the realm of a host is compiled in but disabled by
+  default (due to some concerns with DNS spoofing).
+
+  We recommend that you publish your KDC information through DNS even
+  if you intend to rely on config files at your own site; otherwise,
+  sites that wish to communicate with you will have to keep their
+  config files updated with your information.  One of the goals of
+  this code is to reduce the client-side configuration maintenance
+  requirements as much as is possible, without compromising security.
+
+  See the administrator's guide for information on setting up DNS
+  information for your realm.
+
+  One important effect of this for developers is that on many systems,
+  "-lresolv" must be added to the compiler command line when linking
+  Kerberos programs.
+
+  Configure-time options are available to control the inclusion of the
+  DNS code and the setting of the defaults.  Entries in krb5.conf will
+  also modify the behavior if the code has been compiled in.
+
+* Numerous buffer-overrun problems have been found and fixed.  Many of
+  these were in locations we don't expect can be exploited in any
+  useful way (for example, overrunning a buffer of MAXPATHLEN bytes if
+  a compiled-in pathname is too long, in a program that has no special
+  privileges).  It may be possible to exploit a few of these to
+  compromise system security.
+
+* Partial support for IPv6 addresses has been added.  It can be
+  enabled or disabled at configure time with --enable-ipv6 or
+  --disable-ipv6; by default, the configure script will search for
+  certain types and macros, and enable the IPv6 code if they're found.
+  The IPv6 support at this time mostly consists of including the
+  addresses in credentials.
+
+* A protocol change has been made to the "rcmd" suite (rlogin, rsh,
+  rcp) to address several security problems described in Kris
+  Hildrum's paper presented at NDSS 2000.  New command-line options
+  have been added to control the selection of protocol, since the
+  revised protocol is not compatible with the old one.
+
+* A security problem in login.krb5 has been fixed.  This problem was
+  only present if the krb4 compatibility code was not compiled in.
+
+* A security problem with ftpd has been fixed.  An error in the in the
+  yacc grammar permitted potential root access.
+
+* The client programs kinit, klist and kdestroy have been changed to
+  incorporate krb4 support.  New command-line options control whether
+  krb4 behavior, krb5 behavior, or both are used.
+
+* Patches from Frank Cusack for much better hardware preauth support
+  have been incorporated.
+
+* Patches from Matt Crawford extend the kadmin ACL syntax so that
+  restrictions can be imposed on what certain administrators may do to
+  certain accounts.
+
+* A KDC on a host with multiple network addresses will now respond to
+  a client from the address that the client used to contact it.  The
+  means used to implement this will however cause the KDC not to
+  listen on network addresses configured after the KDC has started.
+
+Minor changes
+-------------
+
+* The shell code for searching for the Tcl package at configure time
+  has been modified.  If a tclConfig.sh can be found, the information
+  it contains is used, otherwise the old searching method is tried.
+  Let us know if this new scheme causes any problems.
+
+* Shared library builds may work on HPUX, Rhapsody/MacOS X, and newer
+  Alpha systems now.
+
+* The Windows build will now include kvno and gss-sample.
+
+* The routine krb5_secure_config_files has been disabled.  A new
+  routine, krb5_init_secure_context, has been added in its place.
+
+* The routine decode_krb5_ticket is now being exported as
+  krb5_decode_ticket.  Any programs that used the old name (which
+  should be few) should be changed to use the new name; we will
+  probably eliminate the old name in the future.
+
+* The CCAPI-based credentials cache code has been changed to store the
+  local-clock time of issue and expiration rather than the KDC-clock
+  times.
+
+* On systems with large numbers of IP addresses, "kinit" should do a
+  better job of acquiring those addresses to put in the user's
+  credentials.
+
+* Several memory leaks in error cases in the gssrpc code have been
+  fixed.
+
+* A bug with login clobbering some internal static storage on AIX has
+  been fixed.
+
+* Per-library initialization and cleanup functions have been added,
+  for use in configurations that dynamically load and unload these
+  libraries.
+
+* Many compile-time warnings have been fixed.
+
+* The GSS sample programs have been updated to exercise more of the
+  API.
+
+* The telnet server should produce a more meaningful error message if
+  authentication is required but not provided.
+
+* Changes have been made to ksu to make it more difficult to use it to
+  leak information the user does not have access to.
+
+* The sample config file information for the CYGNUS.COM realm has been
+  updated, and the GNU.ORG realm has been added.
+
+* A configure-time option has been added to enable a replay cache in
+  the KDC.  We recommend its use when hardware preauthentication is
+  being used.  It is enabled by default, and can be disabled if
+  desired with the configure-time option --disable-kdc-replay-cache.
+
+* Some new routines have been added to the library and krb5.h.
+
+* A new routine has been added to the prompter interface to allow the
+  application to determine which of the strings prompted for is the
+  user's password, in case it is needed for other purposes.
+
+* The remote kadmin interface has been enhanced to support the
+  specification of key/salt types for a principal.
+
+* New keytab entries' key values can now be specified manually with a
+  new command in the ktutil program.
+
+* A longstanding bug where certain krb4 exchanges using the
+  compatibility library between systems with different byte orders
+  would fail half the time has been fixed.
+
+* A source file under the GPL has been replaced with an equivalent
+  under the BSD license.  The file, strftime.c, was part of one of the
+  OpenVision admin system applications, and was only used on systems
+  that don't have strftime() in their C libraries.
+
+* Many bug reports are still outstanding in our database.  We are
+  continuing to work on this backlog.
+
 
 Copyright Notice and Legal Administrivia
 ----------------------------------------
 
-Copyright (C) 1985-1999 by the Massachusetts Institute of Technology.
+Copyright (C) 1985-2000 by the Massachusetts Institute of Technology.
 
 All rights reserved.
 
@@ -156,6 +276,8 @@ manner.  It does NOT prevent a commercial firm from referring to the
 MIT trademarks in order to convey information (although in doing so,
 recognition of their trademark status should be given).
 
+----
+
 The following copyright and permission notice applies to the
 OpenVision Kerberos Administration system located in kadmin/create,
 kadmin/dbutil, kadmin/passwd, kadmin/server, lib/kadm5, and portions
@@ -194,6 +316,13 @@ of lib/rpc:
    and our gratitude for the valuable work which has been 
    performed by MIT and the Kerberos community.
 
+----
+
+    Portions contributed by Matt Crawford <crawdad@fnal.gov> were
+    work performed at Fermi National Accelerator Laboratory, which is
+    operated by Universities Research Association, Inc., under
+    contract DE-AC02-76CHO3000 with the U.S. Department of Energy.
+
 Acknowledgements
 ----------------
 
@@ -222,13 +351,22 @@ as testing to ensure DCE interoperability.
 Thanks to Ken Hornstein at NRL for providing many bug fixes and
 suggestions.
 
+Thanks to Matt Crawford at FNAL for bugfixes and enhancements.
+
 Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for
 their many suggestions and bug fixes.
 
+Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and
+providing patches for numerous buffer overruns.
+
+Thanks to Christopher Thompson and Marcus Watts for discovering the
+ftpd security bug.
+
 Thanks to the members of the Kerberos V5 development team at MIT, both
 past and present: Danillo Almeida, Jay Berkenbilt, Richard Basch, John
 Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam
-Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Barry Jaspan, Geoffrey
-King, John Kohl, Scott McGuire, Kevin Mitchell, Cliff Neuman, Paul
-Park, Ezra Peisach, Chris Provenzano, Ken Raeburn, Jon Rochlis, Jeff
-Schiller, Brad Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.
+Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav Jurisic,
+Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott McGuire,
+Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris
+Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Brad Thompson,
+Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.
index a156febe48ce4210f15f27eecc8cab18e7d41c99..0aa784fa820e25cc33254ffdc87d6dd5605217ce 100644 (file)
@@ -1,3 +1,14 @@
+2000-06-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * admin.texinfo (Kerberos V5 Database Library Error Codes):
+       Replace RCS Id strings with comments indicating that the RCS Id
+       string of the error table is used.
+
+2000-06-22  Tom Yu  <tlyu@mit.edu>
+
+       * build.texinfo (HPUX): Update note for HPUX compiler flags.
+       (Shared Library Support): Update shared lib support info.
+
 2000-06-16  Ken Raeburn  <raeburn@mit.edu>
 
        * admin.texinfo: Update descriptions to indicate full support for
index e60360abcc773cd8cda58e589fc192deb5cdf506..77d066ab09cd0e833c9b2f4cca2ce097036d76ea 100644 (file)
@@ -16,7 +16,7 @@
 
 @include definitions.texinfo
 @set EDITION 1.0
-@set UPDATED November 27, 1996
+@set UPDATED June 16, 2000
 
 @finalout                               @c don't print black warning boxes
 
@@ -2644,7 +2644,7 @@ KRB5PLACEHOLD_126:  KRB5 error code 126
 @item
 KRB5PLACEHOLD_127:  KRB5 error code 127
 @item
-KRB5_ERR_RCSID:  $Id$
+KRB5_ERR_RCSID:  (RCS Id string for the krb5 error table)
 @item
 KRB5_LIBOS_BADLOCKFLAG:  Invalid flag for file lock mode
 @item
@@ -2859,7 +2859,7 @@ This is the Kerberos v5 database library error code table.
 @c error table numbering starts at 0
 @enumerate 0
 @item
-KRB5_KDB_RCSID:  $Id$
+KRB5_KDB_RCSID:  (RCS Id string for the kdb error table)
 @item
 KRB5_KDB_INUSE:  Entry already exists in database
 @item
index b1145f18f2c9e0944f1f2fefb401575e2e857df2..accc0c6ea281cf1499d76518b6040ca50f78e9d6 100644 (file)
@@ -1,3 +1,7 @@
+2000-06-22  Ken Raeburn  <raeburn@mit.edu>
+
+       * Makefile (lib1.stamp): Use texindex instead of index.
+
 1999-08-30  Ken Raeburn  <raeburn@mit.edu>
 
        * libdes.tex: Don't use ncs style; it's availability is dependent
index 3fd23f925aa21a2544129e57d7bc11f3db3f694a..dbb2f03ab2d4a511d276294665b5ecd48d1f1953 100644 (file)
@@ -28,7 +28,7 @@ library.dvi:  lib1.stamp $(LIBTEX) $(STYLES)
 lib1.stamp: $(LIBTEX) $(STYLES)
        touch library.ind
        latex library
-       index library.idx
+       texindex library.idx
        date > lib1.stamp
 
 .tex.dvi:
index fa83acbea3b9d943ea07126a2d5b8c25208b438e..18e51011a8db6c1c88a9cfa602102ab98cd7dc58 100644 (file)
@@ -414,10 +414,15 @@ variables when using the programs. Except where noted, multiple versions
 of the libraries may be installed on the same system and continue to
 work.
 
-Currently the supported platforms are
-@comment NetBSD 1.0A, AIX 3.2.5, AIX 4.1,
-Solaris 2.6 (aka SunOS 5.6) and Irix 6.5.
-@comment Alpha OSF/1 >= 2.1, HP-UX >= 9.X.
+Currently the supported platforms are Solaris 2.6 (aka SunOS 5.6) and Irix 6.5.
+
+Shared library support has been tested on the following platforms but
+not exhaustively (they have been built but not necessarily tested in an
+installed state): Tru64 (aka Alpha OSF/1 or Digital Unix) 4.0, NetBSD
+1.4.x (i386), and HP/UX 10.20.
+
+Platforms for which there is shared library support but not significant
+testing include FreeBSD, OpenBSD, MacOS 10, AIX, Linux, and SunOS 4.x.
 
 To enable shared libraries on the above platforms, run the configure
 script with the option @samp{--enable-shared}.
@@ -500,9 +505,9 @@ NetBSD and FreeBSD.)
 
 The native (bundled) compiler for HPUX currently will not work, because
 it is not a full ANSI C compiler.  The optional compiler (c89) should
-work as long as you give it the @samp{+Olibcalls -D_HPUX_SOURCE} (this
-has only been tested for HPUX 9.0).  At this point, using GCC is
-probably your best bet.
+work as long as you give it the @samp{-D_HPUX_SOURCE} flag
+(i.e. @samp{./configure --with-cc='c89 -D_HPUX_SOURCE'}).  This has only
+been tested recently for HPUX 10.20.
 
 @node Solaris versions 2.0 through 2.3, Solaris 2.X, HPUX, OS Incompatibilities
 @subsection Solaris versions 2.0 through 2.3
index def0d7423820dd85331a557b578e55bbe025f0b1..0c4ed5ce262e60be3c03989a47e88f2d0e8d1138 100644 (file)
@@ -1,3 +1,21 @@
+2000-06-30  Tom Yu  <tlyu@mit.edu>
+
+       * aclocal.m4 (CC_LINK_STATIC): Another fix for freebsd shared libs
+       from David Cross.
+
+2000-06-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * aclocal.m4 (KRB5_AC_ENABLE_DNS): Rewrite to fix logic.  Now
+       --enable-dns-for-XX really will be heeded for setting default
+       behavior.  Also, DNS support can now be compiled in while still
+       turned off by default.  Print out whether the DNS support will be
+       compiled in.
+
+2000-06-30  Tom Yu  <tlyu@mit.edu>
+
+       * aclocal.m4: Fix freebsd CC_LINK_SHARED to have correct rpath
+       flags.  Thanks to David Cross.
+
 2000-06-23  Ken Raeburn  <raeburn@mit.edu>
 
        * aclocal.m4 (KRB5_LIB_PARAMS): Don't need to display "checking"
index df4a6c0abb782ac825b12035b0dafdb946f98e72..78a7a65d86980ffc4dd2962dd0e10e877de104ff 100644 (file)
@@ -1245,7 +1245,7 @@ mips-*-netbsd*)
        PICFLAGS=-fpic
        if test "x$objformat" = "xelf" ; then
                SHLIBVEXT='.so.$(LIBMAJOR)'
-               CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,-R$(PROG_RPATH)'
+               CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -Wl,-rpath -Wl,$(PROG_RPATH)'
        else
                SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
                CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -R$(PROG_RPATH)'
@@ -1419,32 +1419,50 @@ dnl
 dnl KRB5_AC_ENABLE_DNS
 dnl
 AC_DEFUN(KRB5_AC_ENABLE_DNS, [
-  enable_dns_for_kdc=yes
-  enable_dns_for_realm=no
+AC_MSG_CHECKING(if DNS Kerberos lookup support should be compiled in)
 
   AC_ARG_ENABLE([dns],
-[  --enable-dns            enable DNS lookups of Kerberos realm and servers],
-[enable_dns_for_kdc="$enable_dns"
-enable_dns_for_realm="$enable_dns"],
-[enable_dns=no])
-  if test "$enable_dns" = yes; then
-    AC_DEFINE(KRB5_DNS_LOOKUP)
-  fi
+[  --enable-dns            build in support for Kerberos-related DNS lookups], ,
+[enable_dns=default])
 
   AC_ARG_ENABLE([dns-for-kdc],
-[  --enable-dns-for-kdc    enable DNS lookups of Kerberos servers only])
+[  --enable-dns-for-kdc    enable DNS lookups of Kerberos KDCs (default=YES)], ,
+[case "$enable_dns" in
+  yes | no) enable_dns_for_kdc=$enable_dns ;;
+  *) enable_dns_for_kdc=yes ;;
+esac])
   if test "$enable_dns_for_kdc" = yes; then
     AC_DEFINE(KRB5_DNS_LOOKUP_KDC)
   fi
 
   AC_ARG_ENABLE([dns-for-realm],
-[  --enable-dns-for-realm  enable DNS lookups of Kerberos realm names only])
+[  --enable-dns-for-realm  enable DNS lookups of Kerberos realm names], ,
+[case "$enable_dns" in
+  yes | no) enable_dns_for_realm=$enable_dns ;;
+  *) enable_dns_for_realm=no ;;
+esac])
   if test "$enable_dns_for_realm" = yes; then
     AC_DEFINE(KRB5_DNS_LOOKUP_REALM)
   fi
 
-  if test "$enable_dns_for_kdc" = yes || test "$enable_dns_for_realm" = yes ; then
+  if test "$enable_dns_for_kdc,$enable_dns_for_realm" != no,no
+  then
+    # must compile in the support code
+    if test "$enable_dns" = no ; then
+      AC_MSG_ERROR(cannot both enable some DNS options and disable DNS support)
+    fi
     enable_dns=yes
+  fi
+  if test "$enable_dns" = yes ; then
     AC_DEFINE(KRB5_DNS_LOOKUP)
+  else
+    enable_dns=no
   fi
+
+AC_MSG_RESULT($enable_dns)
+dnl AC_MSG_CHECKING(if DNS should be used to find KDCs by default)
+dnl AC_MSG_RESULT($enable_dns_for_kdc)
+dnl AC_MSG_CHECKING(if DNS should be used to find realm name by default)
+dnl AC_MSG_RESULT($enable_dns_for_realm)
+
 ])
index 0eac15d6b0b980f91771c77b74fa7bc4d1c99210..4e0882a5698451993890fdcbef17c3297cad4b28 100644 (file)
@@ -1,3 +1,15 @@
+2000-06-29  Ken Raeburn  <raeburn@mit.edu>
+
+       Patch from Donn Cave and Leonard Peirce from 1.1 release cycle:
+       * login.c (k_init): Call krb5_cc_set_default_name right after
+       setting the environment variable.
+       (main): Likewise.
+
+2000-06-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * rcp.M, rsh.M, rlogin.M: Add description of new -PO, -PN
+       options.
+
 2000-06-19  Tom Yu  <tlyu@mit.edu>
 
        * krshd.c (recvauth): Call krb5_recvauth_version() rather than
index af703b3baaa7f8b1f550cc8eebbfbc63469e6e3e..826ea8a182f5d7d334e9779fbedc8dec6ba705d5 100644 (file)
@@ -517,6 +517,7 @@ void k_init (ttyn)
     if (!getenv(KRB5_ENV_CCNAME)) {
        sprintf(ccfile, "FILE:/tmp/krb5cc_p%d", getpid());
        setenv(KRB5_ENV_CCNAME, ccfile, 1);
+       krb5_cc_set_default_name(kcontext, ccfile);
        unlink(ccfile+strlen("FILE:"));
     } else {
        /* note it correctly */
@@ -1755,8 +1756,10 @@ int main(argc, argv)
 
 #ifdef KRB5_GET_TICKETS
     /* ccfile[0] is only set if we got tickets above */
-    if (login_krb5_get_tickets && ccfile[0])
+    if (login_krb5_get_tickets && ccfile[0]) {
        (void) setenv(KRB5_ENV_CCNAME, ccfile, 1);
+       krb5_cc_set_default_name(kcontext, ccfile);
+    }
 #endif /* KRB5_GET_TICKETS */
 
     if (tty[sizeof("tty")-1] == 'd')
index 46267a5dd6b6b3224825740bf2ce4a174f73d62a..e047db5d653add11e4b17ecfce091998208f7780 100644 (file)
@@ -24,11 +24,13 @@ rcp \- remote file copy
 .B rcp
 [\fB\-p\fP] [\fB\-x\fP] [\fB\-k\fP \fIrealm\fP ] [\fB\-D\fP \fIport\fP]
 [\fB\-N\fP]
+[\fB\-PN | \-PO\fP]
 .I file1 file2
 .sp
 .B rcp
 [\fB\-p\fB] [\fB\-x\fP] [\fP\-k\fP \fIrealm\fP] [\fB\-r\fP] [\fB\-D\fP
 \fIport\fP] [\fB\-N\fP]
+[\fB\-PN | \-PO\fP]
 .I file ... directory
 .SH DESCRIPTION
 .B Rcp
@@ -93,6 +95,16 @@ instead of the remote host's realm as determined by
 if any of the source files are directories, copy each subtree rooted at
 that name; in this case the destination must be a directory.
 .TP
+\fB-PN\fP
+.TP
+\fB-PO\fP
+Explicitly request new or old version of the Kerberos ``rcmd''
+protocol.  The new protocol avoids many security problems found in the
+old one, but is not interoperable with older servers.  (An
+"input/output error" and a closed connection is the most likely result
+of attempting this combination.)  If neither option is specified, some
+simple heuristics are used to guess which to try.
+.TP
 \fB\-D\fP \fIport\fP
 connect to port
 .I port
index 79ac327b148a1b6a965a24fd9678d7cede92382a..601fe460b41ba41bd8cf2ca3ac88f33f38bac81e 100644 (file)
@@ -25,6 +25,7 @@ rlogin \- remote login
 .I rhost
 [\fB\-e\fP\fI\|c\fP] [\fB\-8\fP] [\fB\-c\fP] [ \fB\-a\fP] [\fB\-f\fP]
 [\fB\-F\fP] [\fB\-t\fP \fItermtype\fP] [\fB\-n\fP] [\fB\-7\fP]
+[\fB\-PN | \-PO\fP]
 [\fB\-d\fP] [\fB\-k\fP \fIrealm\fP] [\fB\-x\fP] [\fB\-L\fP] [\fB\-l\fP
 \fIusername\fP]
 .PP
@@ -133,6 +134,16 @@ instead of the remote host's realm as determined by
 turn on DES encryption for all data passed via the rlogin session.  This
 significantly reduces response time and significantly increases CPU
 utilization.
+.TP
+\fB-PN\fP
+.TP
+\fB-PO\fP
+Explicitly request new or old version of the Kerberos ``rcmd''
+protocol.  The new protocol avoids many security problems found in the
+old one, but is not interoperable with older servers.  (An
+"input/output error" and a closed connection is the most likely result
+of attempting this combination.)  If neither option is specified, some
+simple heuristics are used to guess which to try.
 .SH SEE ALSO
 rsh(1), kerberos(3), krb_sendauth(3), krb_realmofhost(3), rlogin(1) [UCB
 version]
index 2b342c3d2ab6876f590e3da4e29f04a2b41e8820..11a7290f5ecd726deb457b068441982b8b6679c5 100644 (file)
@@ -25,6 +25,7 @@ rsh \- remote shell
 .I host
 [\fB\-l\fP \fIusername\fP] [\fB\-n\fP] [\fB\-d\fP] [\fB\-k\fP
 \fIrealm\fP] [\fB\-f\fP | \fB\-F\fP] [\fB\-x\fP]
+[\fB\-PN | \-PO\fP]
 .I command
 .SH DESCRIPTION
 .B Rsh
@@ -101,6 +102,16 @@ on the TCP sockets used for communication with the remote host.
 redirects input from the special device
 .I /dev/null
 (see the BUGS section below).
+.TP
+\fB-PN\fP
+.TP
+\fB-PO\fP
+Explicitly request new or old version of the Kerberos ``rcmd''
+protocol.  The new protocol avoids many security problems found in the
+old one, but is not interoperable with older servers.  (An
+"input/output error" and a closed connection is the most likely result
+of attempting this combination.)  If neither option is specified, some
+simple heuristics are used to guess which to try.
 .PP
 If you omit
 .IR command ,
index 9c79034d2e3b6241e907abc97effffd59832b2a2..d49064567c393e900094e5289c3e0a22129234e1 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-30  Danilo Almeida  <dalmeida@mit.edu>
+
+       * win-pre.in: Fix up DNS build flags to correspond to new DNS
+       build flags.  Add support for not using wshelper.
+
 2000-06-30  Tom Yu  <tlyu@mit.edu>
 
        * pre.in: Twiddle things around to support building libdb under
index 73fdb2efad939e3846f2c4c3e848a01e45cb56cd..d70aff31cfaecc776b32666ef7a905e4bf40516a 100644 (file)
@@ -83,17 +83,29 @@ C=.^\
 srcdir = .
 SRCTOP = $(srcdir)\$(BUILDTOP)
 
-!if defined(KRB5_USE_DNS)
+!if defined(KRB5_USE_DNS) || defined(KRB5_USE_DNS_KDC) || defined(KRB5_USE_DNS_REALMS)
+!if defined(KRB5_NO_WSHELPER)
+DNSMSG=resolver
+!else
+DNSMSG=wshelper
+DNSFLAGS=-DWSHELPER=1
+!endif
 !if !defined(DNS_INC)
-!message Must define DNS_INC to point to wshelper includes dir!
+!message Must define DNS_INC to point to $(DNSMSG) includes dir!
 !error
 !endif
 !if !defined(DNS_LIB)
-!message Must define DNS_LIB to point to wshelper library!
+!message Must define DNS_LIB to point to $(DNSMSG) library!
 !error
 !endif
 DNSLIBS=$(DNS_LIB)
-DNSFLAGS=-I$(DNS_INC) -DKRB5_DNS_LOOKUP -DWSHELPER
+DNSFLAGS=-I$(DNS_INC) $(DNSFLAGS) -DKRB5_DNS_LOOKUP=1
+!if defined(KRB5_USE_DNS_KDC)
+DNSFLAGS=$(DNSFLAGS) -DKRB5_DNS_LOOKUP_KDC=1
+!endif
+!if defined(KRB5_USE_DNS_REALMS)
+DNSFLAGS=$(DNSFLAGS) -DKRB5_DNS_LOOKUP_REALMS=1
+!endif
 !else
 DNSLIBS=
 DNSFLAGS=
index d1548c87fa42182d373e30d018650174d932841f..ee2192342ea9b3abf5a7398eaf8c528c7f117771 100644 (file)
@@ -1,3 +1,7 @@
+2000-06-30  Tom Yu  <tlyu@mit.edu>
+
+       * server_stubs.c: Kludge to rename xdr_free() properly.
+
 2000-06-29  Tom Yu  <tlyu@mit.edu>
 
        * schpw.c (process_chpw_request): Add new argument to call to
index 2eef601b22bc5872b04d2e50bf6b3eb0c754d610..f763677b3e074f7523fe75b1ac410f43644e34fc 100644 (file)
@@ -18,6 +18,8 @@ static char *rcsid = "$Header$";
 #include <syslog.h>
 #include "misc.h"
 
+#define xdr_free gssrpc_xdr_free /* XXX kludge */
+
 #define LOG_UNAUTH  "Unauthorized request: %s, %s, client=%s, service=%s, addr=%s"
 #define        LOG_DONE    "Request: %s, %s, %s, client=%s, service=%s, addr=%s"
 
index 087104e703808e97597cd38bbff942b589306dfe..6f764457ee92ffe806ed154dd15a30bb37a177bb 100644 (file)
@@ -1,3 +1,10 @@
+2000-06-27  Tom Yu  <tlyu@mit.edu>
+
+       * init_sec_context.c (get_credentials): Add initial iteration of
+       krb5_get_credentials in order to differentiate between an actual
+       missing credential and merely a bad match based on enctype.  This
+       was causing problems with kadmin.
+
 2000-06-09  Tom Yu  <tlyu@mit.edu>
            Ken Raeburn  <raeburn@mit.edu>
 
index 13a971ffa61f22d26c877618505576a0bf995c03..acac47184bd5d0c633ff3c706e9241564952a4d2 100644 (file)
 #include <stdlib.h>
 #include <assert.h>
 
+/*
+ * $Id$
+ */
+
 /* XXX This is for debugging only!!!  Should become a real bitfield
    at some point */
 int krb5_gss_dbg_client_expcreds = 0;
@@ -109,11 +113,25 @@ static krb5_error_code get_credentials(context, cred, server, now,
 
     in_creds.keyblock.enctype = 0;
 
+    /*
+     * Initial iteration is necessary to catch a non-matching
+     * credential prior to looping through the GSSAPI-supported
+     * enctypes, since an enctype mismatch in the loop below will
+     * return KRB5_CC_NOTFOUND rather than one of the other error
+     * codes.
+     */
+    code = krb5_get_credentials(context, 0, cred->ccache,
+                               &in_creds, out_creds);
+    if (code)
+       goto cleanup;
+    krb5_free_creds(context, *out_creds);
+    *out_creds = NULL;
     for (i = 0; enctypes[i]; i++) {
        in_creds.keyblock.enctype = enctypes[i];
        code = krb5_get_credentials(context, 0, cred->ccache, 
                                    &in_creds, out_creds);
-       if (code != KRB5_CC_NOT_KTYPE && code != KRB5KDC_ERR_ETYPE_NOSUPP)
+       if (code != KRB5_CC_NOT_KTYPE && code != KRB5_CC_NOTFOUND
+           && code != KRB5KDC_ERR_ETYPE_NOSUPP)
            break;
     }
     if (enctypes[i] == 0) {
index dfdf646c71c01a7b05d26161c6a800605c645759..2d4546f3a5f9cbe0b1b0f7557efaa2b3ffffdbb0 100644 (file)
@@ -1,3 +1,11 @@
+2000-06-30  Tom Yu  <tlyu@mit.edu>
+
+       * conv_princ.c (krb5_425_conv_principal): NULL, not nil.
+
+2000-06-30  Miro Jurisic  <meeroh@mit.edu>
+
+       * conv_princ.c (krb5_425_conv_principal): Fixed a memory leak
+
 2000-06-29  Ezra Peisach  <epeisach@engrailed.mit.edu>
 
        * t_walk_rtree.c (main): Declare as returning int.
index b2df0c60e30e8e6557967dabbd54a790bf83eca4..f0d3d3d31e42a7af1fd85c7629b599caa91e8438 100644 (file)
@@ -272,6 +272,14 @@ krb5_425_conv_principal(context, name, instance, realm, princ)
        } else if ((retval == 0) && (realm_name == NULL)) {
                break;
        }
+       if (realm_name != NULL) {
+               profile_release_string (realm_name);
+               realm_name = NULL;
+       }
+       if (dummy_value != NULL) {
+               profile_release_string (dummy_value);
+               dummy_value = NULL;
+       }
      }
      
      if (instance) {
index 7d0aa318ad2db4115ddac792c9e066c7f8061c0e..1f0a2779d76de022fea922a44993bf0b564d9008 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-21  Tom Yu  <tlyu@mit.edu>
+
+       * svc_auth_gssapi.c (_svcauth_gssapi): Missed a rename.  From
+       Nathan Neulinger.
+
 2000-05-31  Ken Raeburn  <raeburn@mit.edu>
 
        * pmap_rmt.c (GIFCONF_BUFSIZE): New macro.
index 34ee0ef11a053a50cae36e7f6f17be65c8f5a5d1..9d831ad0deca33e36a7837d88e75e3d2f44a0e6b 100644 (file)
@@ -548,7 +548,7 @@ enum auth_stat _svcauth_gssapi(rqst, msg, no_dispatch)
                                      &call_arg)) {
                         PRINTF(("svcauth_gssapi: cannot decode args\n"));
                         LOG_MISCERR("protocol error in call arguments");
-                        xdr_free(xdr_authgssapi_init_arg, &call_arg);
+                        gssrpc_xdr_free(xdr_authgssapi_init_arg, &call_arg);
                         ret = AUTH_BADCRED;
                         goto error;
                    }
index b41a59d78e2abc0dac695909113d73407da30cb4..a4b859b08af35e1dd1795d6b487b06f3ee0bbb81 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-30  Tom Yu  <tlyu@mit.edu>
+
+       * server.c: Include gssrpc/pmap_clnt.h in order to get renaming of
+       pmap_unset().  From Nathan Neulinger.
+
 2000-06-30  Ken Raeburn  <raeburn@mit.edu>
 
        * rpc_test_setup.sh: Error out if server_handle doesn't get set in
index 7270ea40d8071fef51128151adc90ce1772f1f38..32f5de349fb8fe21c6bf4025b484e0d874028340 100644 (file)
@@ -14,6 +14,7 @@ static char *rcsid = "$Header$";
 #include <string.h>
 #include <signal.h>
 #include <gssrpc/rpc.h>
+#include <gssrpc/pmap_clnt.h>
 #include <arpa/inet.h>  /* inet_ntoa */
 #include <gssapi/gssapi.h>
 #include <gssapi/gssapi_generic.h>
index 23bc3ec3053c8fb8312d87cc40830080f4463517..bc6926a8878a69fec9af4775c98ac6d921659b71 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-21  Danilo Almeida  <dalmeida@mit.edu>
+
+       * README: Update documentation with DNS information.  Fix up the
+       language a bit.
+
 2000-04-25  Danilo Almeida  <dalmeida@mit.edu>
 
        * version.rc: Bump version to 1.2 beta.
index f30d02992c23cc5cf98ab5759e912c730fb20e53..1bac4086cef5ee0e0ba2b0fe0fc3f95d7d32e76f 100644 (file)
@@ -1,29 +1,35 @@
               Building & Running Kerberos 5 on Windows
               ----------------------------------------
 
-Kerberos 5 Windows support now only includes Win32 and no longer
-includes Win16.
+Kerberos 5 builds on Windows with MSVC++ 6.0.  It may or may not build
+with other compilers or make utilities.
 
-We build Kerberos 5 on Windows just with MSVC++ 6.0.  You should
-not need anything else.  We do not know whether it currently
-builds with other compilers or make utilities.
-
-These build instructions assume that you got a standalong source
-distribution of Kerberos 5 rather than the MIT Kerberos for Win32
+These build instructions assume that you have the standalone source
+distribution of Kerberos 5 rather than the MIT Kerberos for Windows
 distribution (which includes a working Kerberos 4).
 
 There are two methods for building a Windows version of Kerberos 5.
 The traditional method involves starting on a Unix machine and
 creating a distribution that can be built on Windows.  The second
 method works from the sources that come from the Unix distribution if
-you have certain Unix-type utilities.
+you have certain Unix-type utilities (see below).
 
-IMPORTANT NOTE: By default, the sources are build with debug
+IMPORTANT NOTE: By default, the sources are built with debug
 information and linked against the debug version of the Microsoft C
-Runtime library, which is not found on most Win32 systems unless they
-have development tools.  To build a release version, you need to
+Runtime library, which is not found on most Windows systems unless
+they have development tools.  To build a release version, you need to
 define NODEBUG either in the environment or the nmake command-line.
 
+DNS Support: To support DNS lookups, you will need to define
+KRB5_DNS_LOOKUP, KRB5_DNS_LOOKUP_KDC, or KRB5_DNS_LOOKUP_REALMS.  The
+DNS code will default to trying to use the wshelper library.  If you
+would rather use a resolver library whose include files more closely
+match the Unix resolver library, define KRB5_NO_WSHELPER.  You will
+also need to define DNS_INC to point to the include directory for the
+library and DNS_LIB to library itself.  The default is not to support
+DNS because the build cannot know whether there is a DNS resolver
+library around for it to use.
+
 
 Traditional Build Method:
 ------------------------
@@ -36,13 +42,13 @@ On the Unix side
 
 
 On the PC side
-1) md \krb5                            # Create where we'll put the tree
+1) md \krb5                            # Create dir where we'll put the tree
 2) cd \krb5
 3) unzip kerbsrc.zip
         - or -
    pkunzip -d kerbsrc.zip
-4) nmake [NODEBUG=1]                   # Build the sources
-5) nmake install [NODEBUG=1]          # Copy headers, libs, executables
+4) nmake [NODEBUG=1] [DNS-options]     # Build the sources
+5) nmake install [NODEBUG=1]           # Copy headers, libs, executables
 
 
 All-Windows Build Method:
@@ -52,8 +58,8 @@ First, make sure you have sed, gawk, cat, and cp.
 
 1) cd xxx/src                          # Go to where the source lives
 2) nmake -f Makefile.in prep-windows   # Create Makefile for Windows
-3) nmake [NODEBUG=1]                   # Build the sources
-4) nmake install [NODEBUG=1]          # Copy headers, libs, executables
+3) nmake [NODEBUG=1] [DNS-options      # Build the sources
+4) nmake install [NODEBUG=1]           # Copy headers, libs, executables
 
 
 Notes on the install Target:
@@ -82,7 +88,7 @@ able to run the applications that are built.  Note that Kerberos 5
 will not look for the krb5.ini file in your path.
 
 
-Krb5.ini File:
+krb5.ini File:
 -------------
 
 WARNING: Despite its name, this is not a Windows .ini file.
@@ -128,7 +134,7 @@ Othes Issues:
 
 The krb4_32.dll that is built (but not installed) is not supported.
 If you need Kerberos 4, you can use the krbv4w32.dll that MIT
-distributes as part of the MIT Kerberos for Win32 distribution.
+distributes as part of the MIT Kerberos for Windows distribution.
 
 
 More Information: