From c9d19a4470af87f3c8ed6324c70d7bddd7d79596 Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Thu, 7 Aug 1997 20:32:14 +0000 Subject: [PATCH] * 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 --- src/lib/krb4/ChangeLog | 5 +++++ src/lib/krb4/g_cnffile.c | 27 +++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) 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; -- 2.26.2