aboutsummaryrefslogtreecommitdiff
path: root/src/slave
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2016-06-29 17:13:33 -0400
committerGreg Hudson <ghudson@mit.edu>2016-08-10 17:23:41 -0400
commit73c9944ae86cf3a89e11d3d3f15dd9b8da7b9cd1 (patch)
tree6e53526e6129197424bf37336b6edebf0bb66ec5 /src/slave
parenteb24cc9ca32998eb370ffd6c93dcf7d62c770e5a (diff)
downloadkrb5-73c9944ae86cf3a89e11d3d3f15dd9b8da7b9cd1.zip
krb5-73c9944ae86cf3a89e11d3d3f15dd9b8da7b9cd1.tar.gz
krb5-73c9944ae86cf3a89e11d3d3f15dd9b8da7b9cd1.tar.bz2
Fix a variety of one-time leaks
Eliminate some memory leaks which should not affect normal operation, but which make it harder to detect more serious memory leaks. In kdb5_util, start using the already existing quit() function and remove redundant DB and master key cleanup performed by individual commands. In kdb5_destroy(), use util_context instead of creating a new one. Add an mkey_fullname global variable and use it to make a bunch of krb5_db_setup_mkey_name() calls unnecessary.
Diffstat (limited to 'src/slave')
-rw-r--r--src/slave/kprop.c8
-rw-r--r--src/slave/kpropd.c2
-rw-r--r--src/slave/kproplog.c2
3 files changed, 5 insertions, 7 deletions
diff --git a/src/slave/kprop.c b/src/slave/kprop.c
index 955db50..e80ecab 100644
--- a/src/slave/kprop.c
+++ b/src/slave/kprop.c
@@ -242,13 +242,6 @@ get_tickets(krb5_context context)
exit(1);
}
- /* Fill in the client. */
- retval = krb5_copy_principal(context, my_principal, &creds.client);
- if (retval) {
- com_err(progname, retval, _("while copying client principal"));
- exit(1);
- }
-
if (srvtab != NULL) {
retval = krb5_kt_resolve(context, srvtab, &keytab);
if (retval) {
@@ -598,6 +591,7 @@ xmit_database(krb5_context context, krb5_auth_context auth_context,
send_size, database_size);
exit(1);
}
+ free(inbuf.data);
free(outbuf.data);
}
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index 1b60126..ef64222 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -1000,6 +1000,8 @@ done:
free(master_svc_princstr);
krb5_free_default_realm(kpropd_context, def_realm);
kadm5_destroy(server_handle);
+ krb5_db_fini(kpropd_context);
+ ulog_fini(kpropd_context);
krb5_free_context(kpropd_context);
return (runonce == 1) ? 0 : 1;
diff --git a/src/slave/kproplog.c b/src/slave/kproplog.c
index 857ef03..4f19eeb 100644
--- a/src/slave/kproplog.c
+++ b/src/slave/kproplog.c
@@ -561,5 +561,7 @@ main(int argc, char **argv)
printf("\n");
+ kadm5_free_config_params(context, &params);
+ krb5_free_context(context);
return 0;
}