summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/init_ctx.c1
-rw-r--r--src/lib/krb5/libkrb5.exports1
-rw-r--r--src/lib/krb5/os/localauth.c7
-rw-r--r--src/lib/krb5/os/os-proto.h1
4 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/init_ctx.c b/src/lib/krb5/krb/init_ctx.c
index 58eb01ad5..39b6853cb 100644
--- a/src/lib/krb5/krb/init_ctx.c
+++ b/src/lib/krb5/krb/init_ctx.c
@@ -310,6 +310,7 @@ krb5_free_context(krb5_context ctx)
#endif
k5_ccselect_free_context(ctx);
+ k5_localauth_free_context(ctx);
k5_plugin_free_context(ctx);
free(ctx->plugin_base_dir);
diff --git a/src/lib/krb5/libkrb5.exports b/src/lib/krb5/libkrb5.exports
index 3ade55f3d..665db7fa6 100644
--- a/src/lib/krb5/libkrb5.exports
+++ b/src/lib/krb5/libkrb5.exports
@@ -117,6 +117,7 @@ k5_free_pa_otp_req
k5_free_serverlist
k5_init_trace
k5_kt_get_principal
+k5_localauth_free_context
k5_locate_kdc
k5_os_free_context
k5_os_init_context
diff --git a/src/lib/krb5/os/localauth.c b/src/lib/krb5/os/localauth.c
index 81ab5d8ab..8e1a3a3f8 100644
--- a/src/lib/krb5/os/localauth.c
+++ b/src/lib/krb5/os/localauth.c
@@ -434,3 +434,10 @@ krb5_aname_to_localname(krb5_context context, krb5_const_principal aname,
}
return KRB5_LNAME_NOTRANS;
}
+
+void
+k5_localauth_free_context(krb5_context context)
+{
+ free_handles(context, context->localauth_handles);
+ context->localauth_handles = NULL;
+}
diff --git a/src/lib/krb5/os/os-proto.h b/src/lib/krb5/os/os-proto.h
index 18c4dc4bc..e2891a1e0 100644
--- a/src/lib/krb5/os/os-proto.h
+++ b/src/lib/krb5/os/os-proto.h
@@ -146,6 +146,7 @@ extern unsigned int krb5_max_skdc_timeout;
extern unsigned int krb5_skdc_timeout_shift;
extern unsigned int krb5_skdc_timeout_1;
+void k5_localauth_free_context(krb5_context);
krb5_error_code localauth_names_initvt(krb5_context context, int maj_ver,
int min_ver, krb5_plugin_vtable vtable);
krb5_error_code localauth_rule_initvt(krb5_context context, int maj_ver,