revert kt_default_name changes; see ChangeLogs for details
authorTom Yu <tlyu@mit.edu>
Wed, 13 Nov 1996 21:05:00 +0000 (21:05 +0000)
committerTom Yu <tlyu@mit.edu>
Wed, 13 Nov 1996 21:05:00 +0000 (21:05 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9407 dc483132-0cff-0310-8789-dd5450dbe970

13 files changed:
src/include/ChangeLog
src/include/k5-int.h
src/include/krb5.hin
src/kadmin/cli/ChangeLog
src/kadmin/cli/kadmin.c
src/kadmin/cli/keytab.c
src/kadmin/server/ChangeLog
src/kadmin/server/ovsec_kadmd.c
src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/init_ctx.c
src/lib/krb5/os/ChangeLog
src/lib/krb5/os/ktdefname.c
src/lib/krb5/os/osconfig.c

index b3eebeb0ffe46a1ac7de63c09f0b418fcaa2276a..3a2976d586c8787a7c102cec8faeab43a1404630 100644 (file)
@@ -1,3 +1,7 @@
+Wed Nov 13 14:28:08 1996  Tom Yu  <tlyu@mit.edu>
+
+       * k5-int.h, krb5.hin: Revert kt_default_name changes.
+
 Tue Nov 12 22:04:41 1996  Tom Yu  <tlyu@mit.edu>
 
        * krb5.hin: Add definition for krb5_kt_set_default_name().
index 977b34e9da76850018a9f0dae1ceb6fe42f3abce..f6f30ef5c99d071051493613bf15a632f1f5f73a 100644 (file)
@@ -926,7 +926,6 @@ struct _krb5_context {
        krb5_boolean    profile_secure;
        int             fcc_default_format;
        int             scc_default_format;
-       char            FAR *kt_default_name;
 };
 
 #define KRB5_LIBOPT_SYNC_KDCTIME       0x0001
index 9b4703e290b8473c1e231bce1229ebd6bed57fd6..8696e94d84c346581062be714462f4d525be8f50 100644 (file)
@@ -1551,9 +1551,6 @@ krb5_error_code krb5_kt_default_name
        KRB5_PROTOTYPE((krb5_context,
                   char *,
                   int ));
-krb5_error_code krb5_kt_set_default_name
-       KRB5_PROTOTYPE((krb5_context,
-                  char *));
 krb5_error_code krb5_kt_default
        KRB5_PROTOTYPE((krb5_context,
                   krb5_keytab * ));
index 946ee6a49d13b59f2e560be7b7f211fffa319cbb..bd2e1592dbff649de98f1b229d758def2c54344c 100644 (file)
@@ -1,3 +1,13 @@
+Wed Nov 13 14:29:02 1996  Tom Yu  <tlyu@mit.edu>
+
+       * keytab.c (process_keytab): Note that krb5_defkeyname is an
+       internal interface.
+
+       * kadmin.c (kadmin_startup): Note that krb5_defkeyname is an
+       internal interface.
+       
+       * kadmin.c, keytab.c: Revert kt_default_name changes.
+
 Tue Nov 12 22:05:26 1996  Tom Yu  <tlyu@mit.edu>
 
        * keytab.c (process_keytab): Retrieve *keytab_str using
index 1881c872aa679a2b455233ceb7125f07096602cc..d8011f86e4a3142bdf8f71bf4d67a23010243f9b 100644 (file)
@@ -421,24 +421,11 @@ char *kadmin_startup(argc, argv)
         exit(1);
     }
     {
-       /* hack up the default keytab name to begin with "WRFILE:" */
-       char *cp, ktdef[BUFSIZ];
-       if ((retval = krb5_kt_default_name(context, ktdef, BUFSIZ))) {
-           com_err(whoami, retval, "while looking up default keytab name");
-           exit(1);
-       }
-       if ((cp = malloc(strlen(ktdef) + 1 + 2)) == NULL) {
-           com_err(whoami, ENOMEM, "while editting default keytab name");
-           exit(1);
-       }
-       strcpy(cp, "WR");
-       strcat(cp, ktdef);
-       if ((retval = krb5_kt_set_default_name(context, cp))) {
-           com_err(whoami, retval,
-                   "while changing default keytab name");
-           exit(1);
-       }
-       free(cp);
+#define DEFAULT_KEYTAB "WRFILE:/etc/v5srvtab"
+        /* XXX krb5_defkeyname is an internal library global and
+            should go away */
+        extern char *krb5_defkeyname;
+        krb5_defkeyname = DEFAULT_KEYTAB;
     }
     
     return query;
index 5a47bf159be6cf693cbce759e5bb5d204c1015cb..df4f6ce257cd15f2eb1d22a22613d0303ac51f82 100644 (file)
@@ -23,6 +23,7 @@ static int remove_principal(char *keytab_str, krb5_keytab keytab, char
                            *princ_str, char *kvno_str);
 static char *etype_string(krb5_enctype enctype);
 
+extern char *krb5_defkeyname;   
 extern char *whoami;
 extern krb5_context context;
 extern void *handle;
@@ -44,15 +45,10 @@ int process_keytab(krb5_context context, char **keytab_str,
      int code;
      
      if (*keytab_str == NULL) {
-         char *keytab_str = malloc(BUFSIZ);
-
-         if (keytab_str == NULL) {
-              com_err(whoami, ENOMEM, "while creating default keytab name");
-              return 1;
-         }
-         if ((code = krb5_kt_default_name(context, keytab_str, BUFSIZ))) {
-              com_err(whoami, code, "while copying default keytab name");
-              free(*keytab_str);
+         /* XXX krb5_defkeyname is an internal library global and
+             should go away */
+         if (! (*keytab_str = strdup(krb5_defkeyname))) {
+              com_err(whoami, ENOMEM, "while creating keytab name");
               return 1;
          }
          code = krb5_kt_default(context, keytab);
index 308b2f2dfeb64a82dc1077506f6d18a786af39dd..6092176df6f75d5442be3d80622e5ed1094d9b81 100644 (file)
@@ -1,3 +1,10 @@
+Wed Nov 13 14:29:34 1996  Tom Yu  <tlyu@mit.edu>
+
+       * ovsec_kadmd.c (main): Note that krb5_defkeyname is an internal
+       interface.
+
+       * ovsec_kadmd.c (main): Revert kt_default_name changes.
+
 Tue Nov 12 22:07:05 1996  Tom Yu  <tlyu@mit.edu>
 
        * ovsec_kadmd.c (main): Use krb5_kt_set_default_name() rather than
index 67aa77525b2199648fa922b13b630431044ad165..21514aca1f5f7e44b56164df0480853a8d29bd70 100644 (file)
@@ -58,6 +58,13 @@ void *global_server_handle;
 #define OVSEC_KADM_ADMIN_SERVICE       "ovsec_adm/admin"
 #define OVSEC_KADM_CHANGEPW_SERVICE    "ovsec_adm/changepw"
 
+/*
+ * This enables us to set the keytab that gss_acquire_cred uses, but
+ * it also restricts us to linking against the Kv5 GSS-API library.
+ * Since this is *k*admind, that shouldn't be a problem.
+ */
+extern         char *krb5_defkeyname;
+
 char *build_princ_name(char *name, char *realm);
 void log_badauth(OM_uint32 major, OM_uint32 minor,
                 struct sockaddr_in *addr, char *data);
@@ -309,20 +316,9 @@ int main(int argc, char *argv[])
          exit(1);
      }
 
-     /*
-      * This enables us to set the keytab that gss_acquire_cred uses, but
-      * it also restricts us to linking against the Kv5 GSS-API library.
-      * Since this is *k*admind, that shouldn't be a problem.
-      */
-     if ((ret = krb5_kt_set_default_name(context, params.admin_keytab))) {
-         krb5_klog_syslog(LOG_ERR, "Cannot change default keytab name: %s",
-                         error_message(ret));
-         fprintf(stderr, "%s: Cannot change default keytab name.\n",
-                whoami);
-        kadm5_destroy(global_server_handle);
-        krb5_klog_close();
-        exit(1);
-     }
+     /* XXX krb5_defkeyname is an internal library global and should
+        go away */
+     krb5_defkeyname = params.admin_keytab;
 
      /*
       * Try to acquire creds for the old OV services as well as the
index a45b8a98587d4c70ffccd1050fabd79746758280..c702d0aa972b5956055fbd7519164b6f301bac3f 100644 (file)
@@ -1,3 +1,7 @@
+Wed Nov 13 14:30:47 1996  Tom Yu  <tlyu@mit.edu>
+
+       * init_ctx.c: Revert previous kt_default_name changes.
+
 Tue Nov 12 22:07:33 1996  Tom Yu  <tlyu@mit.edu>
 
        * init_ctx.c (krb5_init_context): Oops. Initialize kt_default_name
index d84d59d0718752b2d2c8a9ac5c08eaa99c58c2a9..19aaf66424fe12cab3d2fa5982cba9dcb23b5f3c 100644 (file)
@@ -68,7 +68,6 @@ krb5_init_context(context)
                goto cleanup;
 
        ctx->default_realm = 0;
-       ctx->kt_default_name = 0;
        profile_get_integer(ctx->profile, "libdefaults", "clockskew",
                            0, 5 * 60, &tmp);
        ctx->clockskew = tmp;
@@ -155,8 +154,6 @@ krb5_free_context(ctx)
      if (ctx->ser_ctx_count && ctx->ser_ctx)
         free(ctx->ser_ctx);
 
-     if (ctx->kt_default_name)
-         free(ctx->kt_default_name);
      ctx->magic = 0;
      free(ctx);
 }
index 124935ea14fcd0d5ab7be1bd7cf5cc6110e6d22f..85a320de3c7f12dc3bba1e8bd1428bb8daf47ab9 100644 (file)
@@ -1,5 +1,8 @@
 Wed Nov 13 02:53:31 1996  Tom Yu  <tlyu@mit.edu>
 
+       * ktdefname.c, osconfig.c: Revert previous kt_default_name
+       changes.
+
        * ktdefname.c (krb5_kt_default_name): Fix a few memory-leak type
        problems in previous changes.
 
index ef5391ab4540c7ce93dd58b2e1b764dfb8b0f22a..29eb54fe2cfde799aeb26746cea95b73707d9ebc 100644 (file)
@@ -28,6 +28,8 @@
 
 #include "k5-int.h"
 
+extern char *krb5_defkeyname;
+
 krb5_error_code
 krb5_kt_default_name(context, name, namesize)
     krb5_context context;
@@ -38,58 +40,37 @@ krb5_kt_default_name(context, name, namesize)
     krb5_error_code code;
     char *retval;
 
-    if (context->kt_default_name == NULL) {
-       if ((context->profile_secure == FALSE) &&
-           (cp = getenv("KRB5_KTNAME"))) {
-           if ((context->kt_default_name = malloc(strlen(cp) + 1)) == NULL)
-               return ENOMEM;
-           strcpy(context->kt_default_name, cp);
-       } else if (((code = profile_get_string(context->profile,
-                                              "libdefaults",
-                                              "default_keytab_name", NULL, 
-                                              NULL, &cp)) == 0) && cp){
-           context->kt_default_name = cp;
-       } else {
+    if ((context->profile_secure == FALSE) &&
+       (cp = getenv("KRB5_KTNAME"))) {
+       strncpy(name, cp, namesize);
+       if (strlen(cp) >= (size_t) namesize)
+           return KRB5_CONFIG_NOTENUFSPACE;
+    } else if (((code = profile_get_string(context->profile,
+                                          "libdefaults",
+                                          "default_keytab_name", NULL, 
+                                          NULL, &retval)) == 0) &&
+              retval) {
+       strncpy(name, retval, namesize);
+       if ((size_t) namesize < strlen(retval))
+           return KRB5_CONFIG_NOTENUFSPACE;
+    } else {
 #if defined (_MSDOS) || defined(_WIN32)
-           {
-               char    defname[160];
-               int     len;
-               
-               len= GetWindowsDirectory( defname, sizeof(defname)-2 );
-               defname[len]= '\0';
-               if ((cp = malloc(strlen(DEFAULT_KEYTAB_NAME) + 1 + len))
-                   == NULL)
-                   return ENOMEM;
-               sprintf(cp, DEFAULT_KEYTAB_NAME, defname);
-               context->kt_default_name = cp;
-           }
+       {
+           char    defname[160];
+           int     len;
+
+           len= GetWindowsDirectory( defname, sizeof(defname)-2 );
+           defname[len]= '\0';
+           if ( (len + strlen(krb5_defkeyname) + 1) > namesize )
+               return KRB5_CONFIG_NOTENUFSPACE;
+           sprintf(name, krb5_defkeyname, defname);
+       }
 #else
-           if ((cp = malloc(strlen(DEFAULT_KEYTAB_NAME) + 1)) == NULL)
-               return ENOMEM;
-           strcpy(cp, DEFAULT_KEYTAB_NAME);
-           context->kt_default_name = cp;
+       strncpy(name, krb5_defkeyname, namesize);
+       if ((size_t) namesize < strlen(krb5_defkeyname))
+           return KRB5_CONFIG_NOTENUFSPACE;
 #endif
-       }
     }
-    strncpy(name, context->kt_default_name, namesize);
-    if ((size_t) namesize < strlen(context->kt_default_name))
-       return KRB5_CONFIG_NOTENUFSPACE;
     return 0;
 }
-
-krb5_error_code
-krb5_kt_set_default_name(context, name)
-     krb5_context context;
-     char *name;
-{
-    char *cp;
-    if ((cp = malloc(strlen(name) + 1)) == NULL)
-       return ENOMEM;
-    else {
-       strcpy(cp, name);
-       if (context->kt_default_name)
-           free(context->kt_default_name);
-       context->kt_default_name = cp;
-       return 0;
-    }
-}
+    
index 568ed02801be48869241733fe4330d0344bb05f3..8403aa38bac828d953c5825dd69b61c0f7dfb674 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "k5-int.h"
 
+char *krb5_defkeyname  = DEFAULT_KEYTAB_NAME;
+
 int krb5_max_dgram_size = MAX_DGRAM_SIZE;
 int krb5_max_skdc_timeout = MAX_SKDC_TIMEOUT;
 int krb5_skdc_timeout_shift = SKDC_TIMEOUT_SHIFT;