* g_cnffile.c: Check to see if context is NULL prior to calling
authorTom Yu <tlyu@mit.edu>
Thu, 7 Aug 1997 20:32:14 +0000 (20:32 +0000)
committerTom Yu <tlyu@mit.edu>
Thu, 7 Aug 1997 20:32:14 +0000 (20:32 +0000)
profile_get_values.  Fixes krb5-libs/317.

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

src/lib/krb4/ChangeLog
src/lib/krb4/g_cnffile.c

index a8911e511d1d3577fc428b541000a8abd7b137f5..fd94d6deaaa945ccded31bf64450b26de92b549a 100644 (file)
@@ -1,3 +1,8 @@
+Thu Aug  7 15:53:13 1997  Tom Yu  <tlyu@mit.edu>
+
+       * g_cnffile.c: Check to see if context is NULL prior to calling
+       profile_get_values.  Fixes krb5-libs/317.
+
 Wed Apr  9 23:15:39 1997  Tom Yu  <tlyu@mit.edu>
 
        * realmofhost.c (krb_realmofhost): Add bounds checking to various
index 07175b14608c2e5c891f02e103f9c1726bbdb238..12edf28740d5a197ec2eae1bce91ad9681ee134b 100644 (file)
@@ -33,14 +33,16 @@ krb__v5_get_file(s)
        names[0] = "libdefaults";
        names[1] = s;
        names[2] = 0;
-       retval = profile_get_values(context->profile, names, &full_name);
-       if (retval == 0 && full_name && full_name[0]) {
+       if (context) {
+           retval = profile_get_values(context->profile, names, &full_name);
+           if (retval == 0 && full_name && full_name[0]) {
                cnffile = fopen(full_name[0],"r");
                for (cpp = full_name; *cpp; cpp++) 
-                       krb5_xfree(*cpp);
+                   krb5_xfree(*cpp);
                krb5_xfree(full_name);
+           }
+           krb5_free_context(context);
        }
-       krb5_free_context(context);
        return cnffile;
 }
 
@@ -58,14 +60,15 @@ krb__get_srvtabname(default_srvtabname)
        names[0] = "libdefaults";
        names[1] = "krb4_srvtab";
        names[2] = 0;
-       retval = profile_get_values(context->profile, names, &full_name);
-       if (retval == 0 && full_name && full_name[0]) {
-               retname = strdup(full_name[0]);
-               for (cpp = full_name; *cpp; cpp++) 
-                       krb5_xfree(*cpp);
-               krb5_xfree(full_name);
-       } else {
-               retname = strdup(default_srvtabname);
+       if (context &&
+           (retval = profile_get_values(context->profile, names, &full_name))
+           && retval == 0 && full_name && full_name[0]) {
+           retname = strdup(full_name[0]);
+           for (cpp = full_name; *cpp; cpp++) 
+               krb5_xfree(*cpp);
+           krb5_xfree(full_name);
+       }else {
+           retname = strdup(default_srvtabname);
        }
        krb5_free_context(context);
        return retname;