From f86d663dec5e46c257ee15210faa67f2bd4fdb6d Mon Sep 17 00:00:00 2001 From: Remi Ferrand Date: Sat, 5 Apr 2014 11:23:13 +0200 Subject: Continue to track down memory leaks When running full test suite with valgrind, found that I forgot to free kerberos error message that was used to log error message. Change-Id: Iceca1172007b3bc3297b824c074cd147b11a5973 Reviewed-on: https://gerrit.stanford.edu/1497 Reviewed-by: Russ Allbery Tested-by: Russ Allbery --- server/config.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/config.c b/server/config.c index f1c72d1..0a4144a 100644 --- a/server/config.c +++ b/server/config.c @@ -944,6 +944,7 @@ acl_check_unxgrp (const char *user, const char *data, const char *file, } else { /* Sanitize and search for match in group members */ + const char *krb_message; char *cur_member = grp.gr_mem[0]; int i = 0; @@ -959,8 +960,11 @@ acl_check_unxgrp (const char *user, const char *data, const char *file, krb5_code = krb5_parse_name(krb_ctx, user, &princ); if (krb5_code != 0) { + krb_message = krb5_get_error_message(krb_ctx, krb5_code); warn("%s:%d: parsing principal %s failed with status %d (%s)", file, - lineno, user, krb5_code, krb5_get_error_message(krb_ctx, krb5_code)); + lineno, user, krb5_code, krb_message); + krb5_free_error_message(krb_ctx, krb_message); + result = CONFIG_ERROR; goto die; } @@ -974,8 +978,11 @@ acl_check_unxgrp (const char *user, const char *data, const char *file, result = CONFIG_NOMATCH; } else { + krb_message = krb5_get_error_message(krb_ctx, krb5_code); warn("%s:%d: converting krb5 principal %s to localname failed with status %d (%s)", file, - lineno, user, krb5_code, krb5_get_error_message(krb_ctx, krb5_code)); + lineno, user, krb5_code, krb_message); + krb5_free_error_message(krb_ctx, krb_message); + result = CONFIG_ERROR; } goto die; -- cgit v1.2.3