]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix localauth memory leak
authorGreg Hudson <ghudson@mit.edu>
Mon, 12 Aug 2013 19:17:20 +0000 (15:17 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 12 Aug 2013 19:26:21 +0000 (15:26 -0400)
localauth modules were not freed by krb5_free_context(), causing a
memory leak.

src/lib/krb5/krb/init_ctx.c
src/lib/krb5/libkrb5.exports
src/lib/krb5/os/localauth.c
src/lib/krb5/os/os-proto.h

index 58eb01ad5b298d43b075e509d3ac970aed23f8d8..39b6853cbaff96884ed27d494f86a07d2bd598a1 100644 (file)
@@ -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);
 
index 3ade55f3da1796766df0d8ad1b1217bae1f706b0..665db7fa6d3f706f0bb809ef1d96bf7bc87177b7 100644 (file)
@@ -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
index 81ab5d8ab559ece122f16f40af81f77eded9da26..8e1a3a3f85c25845c2ae74a10da3dc33f5c7fd9f 100644 (file)
@@ -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;
+}
index 18c4dc4bc410e8d4f18da4311ae7356da1528cab..e2891a1e0ed1561ee1d5c00018b60c60f47bd084 100644 (file)
@@ -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,