an_to_ln.c (dbm_an_to_ln): Don't compile dbm_an_to_ln() if
authorTheodore Tso <tytso@mit.edu>
Tue, 18 Apr 1995 21:49:44 +0000 (21:49 +0000)
committerTheodore Tso <tytso@mit.edu>
Tue, 18 Apr 1995 21:49:44 +0000 (21:49 +0000)
      USE_DBM_LNAME isn't defined.

hst_realm.c (krb5_get_host_realm): Eliminate memory leak in the
      unlikely case that gethostname fails.

      If the krb.realms file isn't available, use the default
      realm of the host.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5367 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/os/ChangeLog
src/lib/krb5/os/an_to_ln.c
src/lib/krb5/os/hst_realm.c

index f647257c0d995943f00c82f9eaabf37c8ba3122d..c4e2df84e48e8661ae3cef24748cfae71e2736a6 100644 (file)
@@ -1,3 +1,16 @@
+Fri Apr 14 22:15:00 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
+
+       * an_to_ln.c (dbm_an_to_ln): Don't compile dbm_an_to_ln() if
+               USE_DBM_LNAME isn't defined.
+
+Fri Apr 14 15:15:48 1995    <tytso@rsx-11.mit.edu>
+
+       * hst_realm.c (krb5_get_host_realm): Eliminate memory leak in the
+               unlikely case that gethostname fails.
+
+               If the krb.realms file isn't available, use the default
+               realm of the host.
+
 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
 
        * *.[ch]: removed unneeded INTERFACE from non-api functions.
index cb11cfdd13217c7f3441c187b2c261fc52197c56..d6c429ddfca93ff5825f779338d8ac3aaf03a284 100644 (file)
@@ -59,13 +59,16 @@ krb5_aname_to_localname(context, aname, lnsize, lname)
 {
        struct stat statbuf;
 
+#ifdef USE_DBM_LNAME
        if (!stat(krb5_lname_file,&statbuf))
                return dbm_an_to_ln(context, aname, lnsize, lname);
+#endif
        if (krb5_lname_username_fallback)
                return username_an_to_ln(context, aname, lnsize, lname);
        return KRB5_LNAME_CANTOPEN;
 }
 
+#ifdef USE_DBM_LNAME
 /*
  * Implementation:  This version uses a DBM database, indexed by aname,
  * to generate a lname.
@@ -116,6 +119,7 @@ dbm_an_to_ln(context, aname, lnsize, lname)
     (void) dbm_close(db);
     return retval;
 }
+#endif /* USE_DBM_LNAME */
 #endif /* _MSDOS */
 
 /*
index 950e2d04b55d2de6c927ffce2e9eee44abff32e8..a3193cbbd424d992d1073184e905d4681022a2db 100644 (file)
@@ -148,8 +148,6 @@ krb5_get_host_realm(context, host, realmsp)
     char scanstring[7+2*16];           /* 7 chars + 16 for each decimal
                                           conversion */
 
-    if (!(retrealms = (char **)calloc(2, sizeof(*retrealms))))
-       return ENOMEM;
     if (!host) {
        if (gethostname(local_host, sizeof(local_host)-1) == -1)
            return errno;
@@ -158,6 +156,9 @@ krb5_get_host_realm(context, host, realmsp)
     }
     domain = strchr(host, '.');
 
+    if (!(retrealms = (char **)calloc(2, sizeof(*retrealms))))
+       return ENOMEM;
+
     /* prepare default */
     if (domain) {
        char *cp;
@@ -180,9 +181,8 @@ krb5_get_host_realm(context, host, realmsp)
 
     krb5_find_config_files();
     if ((trans_file = fopen(krb5_trans_file, "r")) == (FILE *) 0) {
-       krb5_xfree(retrealms[0]);
-       krb5_xfree(retrealms);
-       return KRB5_TRANS_CANTOPEN;
+       *realmsp = retrealms;
+       return 0;
     }
     (void) sprintf(scanstring, "%%%ds %%%ds",
                   sizeof(trans_host)-1,sizeof(trans_realm)-1);