summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kim/lib/kim_ui_plugin.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/kim/lib/kim_ui_plugin.c b/src/kim/lib/kim_ui_plugin.c
index 9b9675353..c307dd189 100644
--- a/src/kim/lib/kim_ui_plugin.c
+++ b/src/kim/lib/kim_ui_plugin.c
@@ -38,6 +38,7 @@ static const char *kim_ui_plugin_dirs[] = { LIBDIR "/krb5/plugins/kimui", NULL }
struct kim_ui_plugin_context {
+ krb5_context kcontext;
struct plugin_dir_handle plugins;
struct kim_ui_plugin_ftable_v0 *ftable;
void **ftables;
@@ -56,6 +57,9 @@ static void kim_ui_plugin_context_free (kim_ui_plugin_context *io_context)
if (PLUGIN_DIR_OPEN (&(*io_context)->plugins)) {
krb5int_close_plugin_dirs (&(*io_context)->plugins);
}
+ if ((*io_context)->kcontext) {
+ krb5_free_context ((*io_context)->kcontext);
+ }
free (*io_context);
*io_context = NULL;
}
@@ -76,6 +80,10 @@ static kim_error kim_ui_plugin_context_allocate (kim_ui_plugin_context *out_cont
}
if (!err) {
+ err = krb5_error (NULL, krb5_init_context (&context->kcontext));
+ }
+
+ if (!err) {
PLUGIN_DIR_INIT(&context->plugins);
context->ftable = NULL;
context->ftables = NULL;
@@ -98,7 +106,6 @@ kim_error kim_ui_plugin_init (kim_ui_context *io_context)
{
kim_error err = KIM_NO_ERROR;
kim_ui_plugin_context context = NULL;
- struct errinfo einfo;
if (!err && !io_context) { err = check_error (KIM_NULL_PARAMETER_ERR); }
@@ -109,16 +116,19 @@ kim_error kim_ui_plugin_init (kim_ui_context *io_context)
if (!err) {
PLUGIN_DIR_INIT(&context->plugins);
- err = krb5int_open_plugin_dirs (kim_ui_plugin_dirs,
- kim_ui_plugin_files,
- &context->plugins, &einfo);
+ err = krb5_error (context->kcontext,
+ krb5int_open_plugin_dirs (kim_ui_plugin_dirs,
+ kim_ui_plugin_files,
+ &context->plugins,
+ &context->kcontext->err));
}
if (!err) {
- err = krb5int_get_plugin_dir_data (&context->plugins,
- "kim_ui_0",
- &context->ftables,
- &einfo);
+ err = krb5_error (context->kcontext,
+ krb5int_get_plugin_dir_data (&context->plugins,
+ "kim_ui_0",
+ &context->ftables,
+ &context->kcontext->err));
}
if (!err && context->ftables) {