[729] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

the following diffs are needed to compile krb5b4p2 under BSDI 1.1

daemon@ATHENA.MIT.EDU (Brian Kantor)
Fri Sep 9 13:13:38 1994

Date: Fri, 9 Sep 1994 10:13:12 -0700
From: brian@nothing.ucsd.edu (Brian Kantor)
To: krb5-bugs@MIT.EDU

diff -b -w -c -r refsrc/admin/create/kdb5_create.c src/admin/create/kdb5_create.c
*** refsrc/admin/create/kdb5_create.c	Tue Jul 19 20:58:56 1994
--- src/admin/create/kdb5_create.c	Thu Sep  8 13:37:09 1994
***************
*** 299,305 ****
      entry.kvno = 1;
      entry.max_life = pblock->max_life;
      entry.max_renewable_life = pblock->max_rlife;
!     entry.mkvno = 1;
      entry.expiration = pblock->expiration;
      entry.mod_name = &db_create_princ;
  
--- 299,305 ----
      entry.kvno = 1;
      entry.max_life = pblock->max_life;
      entry.max_renewable_life = pblock->max_rlife;
!     entry.mkvno = 0;
      entry.expiration = pblock->expiration;
      entry.mod_name = &db_create_princ;
  
diff -b -w -c -r refsrc/appl/bsd/krlogin.c src/appl/bsd/krlogin.c
*** refsrc/appl/bsd/krlogin.c	Sat Aug  6 21:45:32 1994
--- src/appl/bsd/krlogin.c	Wed Sep  7 15:40:16 1994
***************
*** 127,132 ****
--- 127,138 ----
  #include <sgtty.h>
  #endif /* POSIX_TERMIOS */
  
+ #ifdef bsdi
+ #define	ONOCR	0
+ #define	TAB3	OXTABS
+ #define	TABDLY	OXTABS
+ #endif
+      
  #ifndef roundup
  #define roundup(x,y) ((((x)+(y)-1)/(y))*(y))
  #endif
***************
*** 703,708 ****
--- 709,718 ----
  struct	tchars notc =	{ -1, -1, -1, -1, -1, -1 };
  struct	ltchars defltc;
  struct	ltchars noltc =	{ -1, -1, -1, -1, -1, -1 };
+ #endif
+ 
+ #ifdef bsdi
+ int exit();
  #endif
  
  doit(oldmask)

diff -b -w -c -r refsrc/appl/bsd/krlogind.c src/appl/bsd/krlogind.c
*** refsrc/appl/bsd/krlogind.c	Sun Aug  7 17:39:59 1994
--- src/appl/bsd/krlogind.c	Thu Sep  8 10:47:23 1994
***************
*** 108,113 ****
--- 108,114 ----
  #include <sys/socket.h>
  #include <sys/wait.h>
  #include <sys/file.h>
+ #include <sys/ioctl.h>
  #include <ctype.h>
  #ifdef NEED_SYS_FCNTL_H
  #include <sys/fcntl.h>

diff -b -w -c -r refsrc/appl/bsd/login.c src/appl/bsd/login.c
*** refsrc/appl/bsd/login.c	Sun Aug  7 17:01:43 1994
--- src/appl/bsd/login.c	Thu Sep  8 10:48:58 1994
***************
*** 1278,1284 ****
   	tp->c_lflag |= ECHOKE;
  #endif
   	tp->c_iflag |= ICRNL|BRKINT;
!  	tp->c_oflag |= ONLCR|OPOST|TAB3;
  #else /* !POSIX_TERMIOS */
  	tp->sg_flags = ECHO|CRMOD|ANYP|XTABS;
  #endif
--- 1278,1284 ----
   	tp->c_lflag |= ECHOKE;
  #endif
   	tp->c_iflag |= ICRNL|BRKINT;
!  	tp->c_oflag |= ONLCR|OPOST|OXTABS;
  #else /* !POSIX_TERMIOS */
  	tp->sg_flags = ECHO|CRMOD|ANYP|XTABS;
  #endif

diff -b -w -c -r refsrc/appl/bsd/loginpaths.h src/appl/bsd/loginpaths.h
*** refsrc/appl/bsd/loginpaths.h	Thu Aug  4 16:06:44 1994
--- src/appl/bsd/loginpaths.h	Wed Sep  7 15:42:47 1994
***************
*** 53,58 ****
--- 53,63 ----
  #define RPATH "/usr/bin:/bin"
  #endif
  
+ #ifdef bsdi
+ #define LPATH "/usr/bin:/bin"
+ #define RPATH "/usr/bin:/bin"
+ #endif
+ 
  #ifdef __alpha
  #ifdef __osf__
  #define LPATH "/usr/bin:."

diff -b -w -c -r refsrc/appl/telnet/telnetd/sys_term.c src/appl/telnet/telnetd/sys_term.c
*** refsrc/appl/telnet/telnetd/sys_term.c	Sun Aug  7 22:09:31 1994
--- src/appl/telnet/telnetd/sys_term.c	Thu Sep  8 11:11:00 1994
***************
*** 106,120 ****
--- 106,123 ----
  #ifdef	STREAMS
  #include <sys/stream.h>
  #endif
+ 
  #ifdef __hpux
  #include <sys/resource.h>
  #include <sys/proc.h>
  #endif
+ 
  #ifndef linux
  #include <sys/tty.h>
  #else
  #include <linux/tty.h>
  #endif
+ 
  #ifdef	t_erase
  #undef	t_erase
  #undef	t_kill
***************
*** 1233,1239 ****
  	 * Hangup anybody else using this ttyp, then reopen it for
  	 * ourselves.
  	 */
! # if !(defined(CRAY) || defined(__hpux)) && (BSD <= 43) && !defined(STREAMSPTY)
  	(void) signal(SIGHUP, SIG_IGN);
  	vhangup();
  	(void) signal(SIGHUP, SIG_DFL);
--- 1236,1242 ----
  	 * Hangup anybody else using this ttyp, then reopen it for
  	 * ourselves.
  	 */
! # if !(defined(CRAY) || defined(__hpux)) && (BSD <= 43) && !defined(STREAMSPTY) && !defined(bsdi)
  	(void) signal(SIGHUP, SIG_IGN);
  	vhangup();
  	(void) signal(SIGHUP, SIG_DFL);
***************
*** 1281,1287 ****
  }
  #endif	/* !defined(CRAY) || !defined(NEWINIT) */
  
! #if BSD <= 43
  
  	int
  login_tty(t)
--- 1284,1290 ----
  }
  #endif	/* !defined(CRAY) || !defined(NEWINIT) */
  
! #if (BSD <= 43) || defined(bsdi)
  
  	int
  login_tty(t)
***************
*** 1766,1777 ****
  	int sig;
  {
  #ifndef	PARENT_DOES_UTMP
! # if (BSD > 43) || defined(convex)
  	char *p;
  
  	p = line + sizeof("/dev/") - 1;
  	if (logout(p))
  		logwtmp(p, "", "");
  	(void)chmod(line, 0666);
  	(void)chown(line, 0, 0);
  	*p = 'p';
--- 1769,1782 ----
  	int sig;
  {
  #ifndef	PARENT_DOES_UTMP
! # if (BSD > 43) || defined(convex) || defined(bsdi)
  	char *p;
  
  	p = line + sizeof("/dev/") - 1;
+ #  ifndef bsdi
  	if (logout(p))
  		logwtmp(p, "", "");
+ #  endif
  	(void)chmod(line, 0666);
  	(void)chown(line, 0, 0);
  	*p = 'p';

diff -b -w -c -r refsrc/include/krb5/autoconf.h.in src/include/krb5/autoconf.h.in
*** refsrc/include/krb5/autoconf.h.in	Wed Aug 10 10:07:44 1994
--- src/include/krb5/autoconf.h.in	Wed Sep  7 11:04:17 1994
***************
*** 13,18 ****
--- 13,19 ----
  #undef HAS_ANSI_VOLATILE
  #undef HAS_STDLIB_H
  #undef HAS_STRDUP
+ #undef HAS_SETSID
  #undef HAS_VOID_TYPE
  #undef KRB5_PROVIDE_PROTOTYPES
  #undef NEED_SYS_FCNTL_H

diff -b -w -c -r refsrc/include/krb5/configure src/include/krb5/configure
*** refsrc/include/krb5/configure	Wed Aug 10 10:01:40 1994
--- src/include/krb5/configure	Wed Sep  7 11:07:59 1994
***************
*** 509,514 ****
--- 509,547 ----
  "
  }
  
+ fi
+ rm -f conftest*
+ 
+ test -n "$silent" || echo "checking for setsid"
+ cat > conftest.${ac_ext} <<EOF
+ #include "confdefs.h"
+ #include <ctype.h>
+ int main() { return 0; }
+ int t() { 
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined (__stub_setsid) || defined (__stub___setsid)
+ choke me
+ #else
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ extern char setsid(); setsid();
+ #endif
+ ; return 0; }
+ EOF
+ if eval $ac_compile; then
+   rm -rf conftest*
+   {
+ test -n "$verbose" && \
+ echo "	defining HAS_SETSID"
+ echo "#define" HAS_SETSID "1" >> confdefs.h
+ DEFS="$DEFS -DHAS_SETSID=1"
+ ac_sed_defs="${ac_sed_defs}\${ac_dA}HAS_SETSID\${ac_dB}HAS_SETSID\${ac_dC}1\${ac_dD}
+ \${ac_uA}HAS_SETSID\${ac_uB}HAS_SETSID\${ac_uC}1\${ac_uD}
+ \${ac_eA}HAS_SETSID\${ac_eB}HAS_SETSID\${ac_eC}1\${ac_eD}
+ "
+ }
+ 
  
  fi
  rm -f conftest*
diff -b -w -c -r refsrc/include/krb5/configure.in src/include/krb5/configure.in
*** refsrc/include/krb5/configure.in	Tue Aug  2 02:41:55 1994
--- src/include/krb5/configure.in	Wed Sep  7 11:01:40 1994
***************
*** 6,11 ****
--- 6,12 ----
  AC_PROG_LEX
  HAVE_YYLINENO
  AC_FUNC_CHECK(strdup,AC_DEFINE(HAS_STRDUP))
+ AC_FUNC_CHECK(setsid,AC_DEFINE(HAS_SETSID))
  CHECK_DIRENT
  CHECK_FCNTL
  CHECK_WAIT_TYPE
diff -b -w -c -r refsrc/include/krb5/func-proto.h src/include/krb5/func-proto.h
*** refsrc/include/krb5/func-proto.h	Fri Jun 10 11:53:02 1994
--- src/include/krb5/func-proto.h	Thu Sep  8 15:35:30 1994
***************
*** 183,189 ****
  #endif
  
  krb5_error_code krb5_425_conv_principal
! 	PROTOTYPE((const char *name, const char *instance, const char *realm,
  		   krb5_principal *princ));
  
  krb5_error_code krb5_obtain_padata
--- 183,189 ----
  #endif
  
  krb5_error_code krb5_425_conv_principal
! 	PROTOTYPE((const char *name, char *instance, const char *realm,
  		   krb5_principal *princ));
  
  krb5_error_code krb5_obtain_padata

diff -b -w -c -r refsrc/kadmin/client/kadmin_add.c src/kadmin/client/kadmin_add.c
*** refsrc/kadmin/client/kadmin_add.c	Thu Jun 23 23:20:48 1994
--- src/kadmin/client/kadmin_add.c	Thu Sep  8 15:05:12 1994
***************
*** 263,269 ****
  	free(inbuf.data);
          return(1);
      }
-     free(inbuf.data);
      
      decode_kadmind_reply(msg_data, &rd_priv_resp);
  
--- 263,268 ----

diff -b -w -c -r refsrc/kadmin/server/adm_extern.c src/kadmin/server/adm_extern.c
*** refsrc/kadmin/server/adm_extern.c	Tue Aug 31 20:02:56 1993
--- src/kadmin/server/adm_extern.c	Thu Sep  8 14:56:31 1994
***************
*** 51,56 ****
--- 51,57 ----
  
  krb5_keyblock tgs_key;
  krb5_kvno tgs_kvno;
+ krb5_kvno tgs_mkvno;
  
  krb5_data inbuf;
  krb5_data msg_data;
diff -b -w -c -r refsrc/kadmin/server/adm_extern.h src/kadmin/server/adm_extern.h
*** refsrc/kadmin/server/adm_extern.h	Fri Dec 24 14:24:19 1993
--- src/kadmin/server/adm_extern.h	Thu Sep  8 14:56:56 1994
***************
*** 59,64 ****
--- 59,65 ----
  
  extern krb5_keyblock tgs_key;
  extern krb5_kvno tgs_kvno;
+ extern krb5_kvno tgs_mkvno;
  extern krb5_principal tgs_server;
  
  extern global_client_server_info client_server_info;
diff -b -w -c -r refsrc/kadmin/server/adm_funcs.c src/kadmin/server/adm_funcs.c
*** refsrc/kadmin/server/adm_funcs.c	Fri Jun 24 20:19:01 1994
--- src/kadmin/server/adm_funcs.c	Thu Sep  8 15:07:59 1994
***************
*** 174,180 ****
          entry->kvno = KDB5_VERSION_NUM;
          entry->max_life = KDB5_MAX_TKT_LIFE;
          entry->max_renewable_life = KDB5_MAX_REN_LIFE;
!         entry->mkvno = mblock.mkvno;
          entry->expiration = KDB5_EXP_DATE;
          entry->mod_name = master_princ;
      } else { /* Modify existing entry */
--- 174,180 ----
          entry->kvno = KDB5_VERSION_NUM;
          entry->max_life = KDB5_MAX_TKT_LIFE;
          entry->max_renewable_life = KDB5_MAX_REN_LIFE;
!         entry->mkvno = tgs_mkvno;
          entry->expiration = KDB5_EXP_DATE;
          entry->mod_name = master_princ;
      } else { /* Modify existing entry */
***************
*** 182,188 ****
  #ifdef SANDIA
  	entry->attributes &= ~KRB5_KDB_REQUIRES_PWCHANGE;
  #endif
! 	entry->mod_name = (krb5_principal) principal;
      }
  
      if (key && key->length) {
--- 182,189 ----
  #ifdef SANDIA
  	entry->attributes &= ~KRB5_KDB_REQUIRES_PWCHANGE;
  #endif
! /*DREW - this isn't used and would be freed twice */
! /*	entry->mod_name = (krb5_principal) principal; */
      }
  
      if (key && key->length) {
diff -b -w -c -r refsrc/kadmin/server/adm_network.c src/kadmin/server/adm_network.c
*** refsrc/kadmin/server/adm_network.c	Thu Jun  2 09:23:46 1994
--- src/kadmin/server/adm_network.c	Thu Sep  8 15:09:15 1994
***************
*** 86,92 ****
       *  <sys/param.h> has been included, so BSD will be defined on
       * BSD systems
       */
! #if BSD > 0 && BSD <= 43
  #ifndef WEXITSTATUS
  #define	WEXITSTATUS(w)	(w).w_retcode
  #define WTERMSIG(w)	(w).w_termsig
--- 86,92 ----
       *  <sys/param.h> has been included, so BSD will be defined on
       * BSD systems
       */
! #if BSD > 0 && BSD <= 43 && !defined(_POSIX_SOURCE)
  #ifndef WEXITSTATUS
  #define	WEXITSTATUS(w)	(w).w_retcode
  #define WTERMSIG(w)	(w).w_termsig
diff -b -w -c -r refsrc/kadmin/server/adm_process.c src/kadmin/server/adm_process.c
*** refsrc/kadmin/server/adm_process.c	Fri Jun 24 20:19:10 1994
--- src/kadmin/server/adm_process.c	Thu Sep  8 15:11:03 1994
***************
*** 277,286 ****
  			error_message(retval));
  	(void) sprintf(retbuf, "kadmind error during recvauth: %s\n", 
  			error_message(retval));
! 	krb5_free_keyblock(cpw_key.key);
  	goto finish;
      }
!     krb5_free_keyblock(cpw_key.key);
  
      /* Check if ticket was issued using password (and not tgt)
       * within the last 5 minutes
--- 277,286 ----
  			error_message(retval));
  	(void) sprintf(retbuf, "kadmind error during recvauth: %s\n", 
  			error_message(retval));
! /*DREW	krb5_free_keyblock(cpw_key.key); */
  	goto finish;
      }
! /*DREW    krb5_free_keyblock(cpw_key.key); */
  
      /* Check if ticket was issued using password (and not tgt)
       * within the last 5 minutes
***************
*** 425,436 ****
  	free(final_msg.data);
  	goto finish;
      }
!     free(final_msg.data);
      
          /* Send Final Reply to Client */
      if (retval = krb5_write_message(&client_server_info.client_socket,
  					&msg_data)){
! 	free(msg_data.data);
  	syslog(LOG_ERR, "Error Performing Final Write: %s",
  			error_message(retval));
  	retval = 1;
--- 425,436 ----
  	free(final_msg.data);
  	goto finish;
      }
! /*DREW    free(final_msg.data); */
      
          /* Send Final Reply to Client */
      if (retval = krb5_write_message(&client_server_info.client_socket,
  					&msg_data)){
! /*DREW	free(msg_data.data); */
  	syslog(LOG_ERR, "Error Performing Final Write: %s",
  			error_message(retval));
  	retval = 1;
diff -b -w -c -r refsrc/kadmin/server/adm_server.c src/kadmin/server/adm_server.c
*** refsrc/kadmin/server/adm_server.c	Tue Jun 28 22:33:00 1994
--- src/kadmin/server/adm_server.c	Thu Sep  8 14:58:23 1994
***************
*** 343,348 ****
--- 343,349 ----
      }
  
      tgs_kvno = server_entry.kvno;
+     tgs_mkvno = server_entry.kvno;
      krb5_db_free_principal(&server_entry, number_of_entries);
      return(0);
  }
diff -b -w -c -r refsrc/kdc/kerberos_v4.c src/kdc/kerberos_v4.c
*** refsrc/kdc/kerberos_v4.c	Thu Aug  4 13:43:58 1994
--- src/kdc/kerberos_v4.c	Thu Sep  8 15:18:18 1994
***************
*** 70,75 ****
--- 70,77 ----
  /* take this out when we don't need it anymore */
  int krbONE = 1;
  
+ extern u_char master_key_version;
+ 
  #ifdef notdef
  static struct sockaddr_in sin = {AF_INET};
  #endif
***************
*** 90,98 ****
  /*
  static C_Block user_key;
  static C_Block service_key;
- */
  static u_char master_key_version;
- /*
  static char k_instance[INST_SZ];
  */
  static char log_text[128];
--- 92,98 ----
***************
*** 491,496 ****
--- 491,497 ----
      case L_NTGT_INTK:
      case L_TKT_REQ:
      case L_APPL_REQ:
+     default:
  	strcpy(log_text, "PROCESS_V4:");
  	vsprintf(log_text+strlen(log_text), format, pvar);
  	syslog(logpri, log_text);
diff -b -w -c -r refsrc/kdc/main.c src/kdc/main.c
*** refsrc/kdc/main.c	Tue Jun 28 22:33:35 1994
--- src/kdc/main.c	Thu Sep  8 15:20:23 1994
***************
*** 56,61 ****
--- 56,65 ----
  #include "extern.h"
  #include "kdc5_err.h"
  
+ #ifdef KRB4
+ u_char master_key_version;
+ #endif /* KRB4 */
+ 
  static void
  kdc_com_err_proc(whoami, code, format, pvar)
  	const char *whoami;
***************
*** 356,361 ****
--- 360,368 ----
  	return retval;
      }
      tgs_kvno = server.kvno;
+ #ifdef KRB4
+     master_key_version = server.mkvno;
+ #endif /* KRB4 */
      krb5_db_free_principal(&server, nprincs);
      return 0;
  }
diff -b -w -c -r refsrc/lib/krb5/asn.1/krbasn1.h src/lib/krb5/asn.1/krbasn1.h
*** refsrc/lib/krb5/asn.1/krbasn1.h	Sun Jul  3 01:45:53 1994
--- src/lib/krb5/asn.1/krbasn1.h	Wed Sep  7 10:08:18 1994
***************
*** 6,11 ****
--- 6,13 ----
  #include <errno.h>
  #include <limits.h>
  
+ #include "asn1_err.h"
+ 
  /* The current version of {en,de}code_krb5_enc_kdc_rep_part has a
     problem in that there's no way to know the message type (AS/TGS) of
     a krb5_enc_kdc_rep_part.  This should be fixed in the next version
diff -b -w -c -r refsrc/lib/krb5/krb/conv_princ.c src/lib/krb5/krb/conv_princ.c
*** refsrc/lib/krb5/krb/conv_princ.c	Thu Jun  9 00:20:06 1994
--- src/lib/krb5/krb/conv_princ.c	Thu Sep  8 15:21:52 1994
***************
*** 167,173 ****
  
  krb5_error_code krb5_425_conv_principal(name, instance, realm, princ)
     const char	*name;
!    const char	*instance;
     const char	*realm;
     krb5_principal	*princ;
  {
--- 167,173 ----
  
  krb5_error_code krb5_425_conv_principal(name, instance, realm, princ)
     const char	*name;
!    char	*instance;
     const char	*realm;
     krb5_principal	*princ;
  {
diff -b -w -c -r refsrc/lib/krb5/rcache/rc_dfl.c src/lib/krb5/rcache/rc_dfl.c
*** refsrc/lib/krb5/rcache/rc_dfl.c	Sun Jun 12 10:46:09 1994
--- src/lib/krb5/rcache/rc_dfl.c	Thu Sep  8 15:32:54 1994
***************
*** 543,581 ****
    
  #else
      struct authlist *q;
!     char *name = t->name;
      krb5_error_code retval;
      krb5_rcache tmp;
      krb5_deltat lifespan = t->lifespan;  /* save original lifespan */
  
      (void) krb5_rc_dfl_close_no_free(id);
      retval = krb5_rc_dfl_resolve(id, name);
!     if (retval)
  	return retval;
      retval = krb5_rc_dfl_recover(id);
!     if (retval)
  	return retval;
      t = (struct dfl_data *)id->data; /* point to recovered cache */
      tmp = (krb5_rcache) malloc(sizeof(*tmp));
!     if (!tmp)
  	return ENOMEM;
      retval = krb5_rc_resolve_type(&tmp, "dfl");
!     if (retval)
  	return retval;
      retval = krb5_rc_resolve(tmp, 0);
!     if (retval)
  	return retval;
      retval = krb5_rc_initialize(tmp, lifespan);
!     if (retval)
  	return retval;
      for (q = t->a;q;q = q->na) {
! 	if (krb5_rc_io_store ((struct dfl_data *)tmp->data, &q->rep))
  	    return KRB5_RC_IO;
      }
!     if (krb5_rc_io_sync(&t->d))
  	return KRB5_RC_IO;
!     if (krb5_rc_io_move(&t->d, &((struct dfl_data *)tmp->data)->d))
  	return KRB5_RC_IO;
  #endif
      return 0;
  }
--- 543,603 ----
    
  #else
      struct authlist *q;
!     char *name;
      krb5_error_code retval;
      krb5_rcache tmp;
      krb5_deltat lifespan = t->lifespan;  /* save original lifespan */
  
+     if (!(name = (char *) malloc(strlen(t->name)+1)))
+ 	return KRB5_RC_MALLOC;
+     strcpy(name, t->name);
      (void) krb5_rc_dfl_close_no_free(id);
      retval = krb5_rc_dfl_resolve(id, name);
!     if (retval) {
! 	FREE(name);
  	return retval;
+     }
      retval = krb5_rc_dfl_recover(id);
!     if (retval) {
! 	FREE(name);
  	return retval;
+     }
      t = (struct dfl_data *)id->data; /* point to recovered cache */
      tmp = (krb5_rcache) malloc(sizeof(*tmp));
!     if (!tmp) {
! 	FREE(name);
  	return ENOMEM;
+     }
      retval = krb5_rc_resolve_type(&tmp, "dfl");
!     if (retval) {
! 	FREE(name);
  	return retval;
+     }
      retval = krb5_rc_resolve(tmp, 0);
!     if (retval) {
! 	FREE(name);
  	return retval;
+     }
      retval = krb5_rc_initialize(tmp, lifespan);
!     if (retval) {
! 	FREE(name);
  	return retval;
+     }
      for (q = t->a;q;q = q->na) {
! 	if (krb5_rc_io_store ((struct dfl_data *)tmp->data, &q->rep)) {
! 	    FREE(name);
  	    return KRB5_RC_IO;
  	}
!     }
!     if (krb5_rc_io_sync(&t->d)) {
! 	FREE(name);
  	return KRB5_RC_IO;
!     }
!     if (krb5_rc_io_move(&t->d, &((struct dfl_data *)tmp->data)->d)) {
! 	FREE(name);
  	return KRB5_RC_IO;
+     }
  #endif
+     FREE(name);
      return 0;
  }
diff -b -w -c -r refsrc/tests/create/kdb5_mkdums.c src/tests/create/kdb5_mkdums.c
*** refsrc/tests/create/kdb5_mkdums.c	Tue Aug 31 20:20:41 1993
--- src/tests/create/kdb5_mkdums.c	Thu Sep  8 15:38:16 1994
***************
*** 291,296 ****
--- 291,297 ----
      newentry.max_renewable_life = mblock.max_rlife;
      newentry.mkvno = mblock.mkvno;
      newentry.expiration = mblock.expiration;
+     newentry.pw_expiration = mblock.expiration;
      newentry.mod_name = master_princ;
      if (retval = krb5_timeofday(&newentry.mod_date)) {
  	com_err(progname, retval, "while fetching date");
***************
*** 302,307 ****
--- 303,312 ----
      newentry.salt_type = KRB5_KDB_SALTTYPE_NORMAL;
      newentry.salt_length = 0;
      newentry.salt = 0;
+     newentry.alt_key.length = 0;
+     newentry.alt_key.contents = 0;
+     newentry.alt_salt_length = 0;
+     newentry.alt_salt = 0;
      
      retval = krb5_db_put_principal(&newentry, &one);
      if (retval) {


home help back first fref pref prev next nref lref last post