From: Tom Yu Date: Thu, 7 Aug 1997 20:32:14 +0000 (+0000) Subject: * g_cnffile.c: Check to see if context is NULL prior to calling X-Git-Tag: krb5-1.1-beta1~1061 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c9d19a4470af87f3c8ed6324c70d7bddd7d79596;p=krb5.git * g_cnffile.c: Check to see if context is NULL prior to calling profile_get_values. Fixes krb5-libs/317. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10164 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/krb4/ChangeLog b/src/lib/krb4/ChangeLog index a8911e511..fd94d6dea 100644 --- a/src/lib/krb4/ChangeLog +++ b/src/lib/krb4/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 7 15:53:13 1997 Tom Yu + + * 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 * realmofhost.c (krb_realmofhost): Add bounds checking to various diff --git a/src/lib/krb4/g_cnffile.c b/src/lib/krb4/g_cnffile.c index 07175b146..12edf2874 100644 --- a/src/lib/krb4/g_cnffile.c +++ b/src/lib/krb4/g_cnffile.c @@ -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;