[Freeipa-devel] [PATCH] 0017 Fix various memory leaks in Kerberos helper code
Hello, this patch fixes several memory leaks in Kerberos integration code. Fix was tested with Valgrind. There is another memory leak in persistent search code, it will be fixed by separate patch. Petr^2 Spacek From 2b95bc00554f19f8949fb4690d802828ccf17023 Mon Sep 17 00:00:00 2001 From: Petr Spacek pspa...@redhat.com Date: Mon, 16 Apr 2012 14:07:20 +0200 Subject: [PATCH] Fix various memory leaks in Kerberos helper code. Signed-off-by: Petr Spacek pspa...@redhat.com --- src/krb5_helper.c | 16 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/krb5_helper.c b/src/krb5_helper.c index 571f511..ffa6938 100644 --- a/src/krb5_helper.c +++ b/src/krb5_helper.c @@ -31,8 +31,9 @@ #define CHECK_KRB5(ctx, err, msg, ...) \ do {\ if (err) { \ - log_error(msg (%s), ##__VA_ARGS__, \ - krb5_get_error_message(ctx, err)); \ + const char * errmsg = krb5_get_error_message(ctx, err); \ + log_error(msg (%s), ##__VA_ARGS__, errmsg); \ + krb5_free_error_message(ctx, errmsg); \ result = ISC_R_FAILURE;\ goto cleanup; \ } \ @@ -66,8 +67,10 @@ check_credentials(krb5_context context, krberr = krb5_cc_retrieve_cred(context, ccache, 0, mcreds, creds); if (krberr) { + const char * errmsg = krb5_get_error_message(context, krberr); log_debug(2, Principal not found in cred cache (%s), - krb5_get_error_message(context, krberr)); + errmsg); + krb5_free_error_message(context, errmsg); result = ISC_R_FAILURE; goto cleanup; } @@ -97,8 +100,9 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) krb5_context context = NULL; krb5_keytab keytab = NULL; krb5_ccache ccache = NULL; - krb5_principal kprincpw; + krb5_principal kprincpw = NULL; krb5_creds my_creds; + krb5_creds * my_creds_ptr = NULL; krb5_get_init_creds_opt options; krb5_error_code krberr; isc_result_t result; @@ -167,6 +171,7 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) krberr = krb5_get_init_creds_keytab(context, my_creds, kprincpw, keytab, 0, NULL, options); CHECK_KRB5(context, krberr, Failed to init credentials); + my_creds_ptr = my_creds; /* store credentials in cache */ krberr = krb5_cc_initialize(context, ccache, kprincpw); @@ -179,7 +184,10 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) cleanup: if (ccname) str_destroy(ccname); + if (ccache) krb5_cc_close(context, ccache); if (keytab) krb5_kt_close(context, keytab); + if (kprincpw) krb5_free_principal(context, kprincpw); + if (my_creds_ptr) krb5_free_cred_contents(context, my_creds_ptr); if (context) krb5_free_context(context); return result; } -- 1.7.7.6 ___ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel
Re: [Freeipa-devel] [PATCH] 0017 Fix various memory leaks in Kerberos helper code
On Mon, Apr 16, 2012 at 02:13:06PM +0200, Petr Spacek wrote: Hello, this patch fixes several memory leaks in Kerberos integration code. Fix was tested with Valgrind. There is another memory leak in persistent search code, it will be fixed by separate patch. Ack, please push it to master. A From 2b95bc00554f19f8949fb4690d802828ccf17023 Mon Sep 17 00:00:00 2001 From: Petr Spacek pspa...@redhat.com Date: Mon, 16 Apr 2012 14:07:20 +0200 Subject: [PATCH] Fix various memory leaks in Kerberos helper code. Signed-off-by: Petr Spacek pspa...@redhat.com --- src/krb5_helper.c | 16 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/krb5_helper.c b/src/krb5_helper.c index 571f511..ffa6938 100644 --- a/src/krb5_helper.c +++ b/src/krb5_helper.c @@ -31,8 +31,9 @@ #define CHECK_KRB5(ctx, err, msg, ...) \ do {\ if (err) { \ - log_error(msg (%s), ##__VA_ARGS__, \ - krb5_get_error_message(ctx, err));\ + const char * errmsg = krb5_get_error_message(ctx, err); \ + log_error(msg (%s), ##__VA_ARGS__, errmsg); \ + krb5_free_error_message(ctx, errmsg); \ result = ISC_R_FAILURE; \ goto cleanup; \ } \ @@ -66,8 +67,10 @@ check_credentials(krb5_context context, krberr = krb5_cc_retrieve_cred(context, ccache, 0, mcreds, creds); if (krberr) { + const char * errmsg = krb5_get_error_message(context, krberr); log_debug(2, Principal not found in cred cache (%s), - krb5_get_error_message(context, krberr)); + errmsg); + krb5_free_error_message(context, errmsg); result = ISC_R_FAILURE; goto cleanup; } @@ -97,8 +100,9 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) krb5_context context = NULL; krb5_keytab keytab = NULL; krb5_ccache ccache = NULL; - krb5_principal kprincpw; + krb5_principal kprincpw = NULL; krb5_creds my_creds; + krb5_creds * my_creds_ptr = NULL; krb5_get_init_creds_opt options; krb5_error_code krberr; isc_result_t result; @@ -167,6 +171,7 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) krberr = krb5_get_init_creds_keytab(context, my_creds, kprincpw, keytab, 0, NULL, options); CHECK_KRB5(context, krberr, Failed to init credentials); + my_creds_ptr = my_creds; /* store credentials in cache */ krberr = krb5_cc_initialize(context, ccache, kprincpw); @@ -179,7 +184,10 @@ get_krb5_tgt(isc_mem_t *mctx, const char *principal, const char *keyfile) cleanup: if (ccname) str_destroy(ccname); + if (ccache) krb5_cc_close(context, ccache); if (keytab) krb5_kt_close(context, keytab); + if (kprincpw) krb5_free_principal(context, kprincpw); + if (my_creds_ptr) krb5_free_cred_contents(context, my_creds_ptr); if (context) krb5_free_context(context); return result; } -- 1.7.7.6 -- Adam Tkac, Red Hat, Inc. ___ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel
Re: [Freeipa-devel] [PATCH] 0017 Fix various memory leaks in Kerberos helper code
On 04/16/2012 02:25 PM, Adam Tkac wrote: On Mon, Apr 16, 2012 at 02:13:06PM +0200, Petr Spacek wrote: Hello, this patch fixes several memory leaks in Kerberos integration code. Fix was tested with Valgrind. There is another memory leak in persistent search code, it will be fixed by separate patch. Ack, please push it to master. A Pushed to master: https://fedorahosted.org/bind-dyndb-ldap/changeset/2b95bc00554f19f8949fb4690d802828ccf17023 From 2b95bc00554f19f8949fb4690d802828ccf17023 Mon Sep 17 00:00:00 2001 From: Petr Spacekpspa...@redhat.com Date: Mon, 16 Apr 2012 14:07:20 +0200 Subject: [PATCH] Fix various memory leaks in Kerberos helper code. Signed-off-by: Petr Spacekpspa...@redhat.com ___ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel