summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorRemi Ferrand <remi.ferrand@cc.in2p3.fr>2014-04-05 11:23:13 +0200
committerRuss Allbery <rra@stanford.edu>2014-06-16 10:57:08 -0700
commitf86d663dec5e46c257ee15210faa67f2bd4fdb6d (patch)
tree9d3738c86d46ff7a3c3b7d6e474c129a2282456d /server
parent408c8e23880eb6f2801f4616ed30126af5ff857c (diff)
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 <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
Diffstat (limited to 'server')
-rw-r--r--server/config.c11
1 files changed, 9 insertions, 2 deletions
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;