From ee6f7402ca87bfafacc2351354e7bfa1fdab7879 Mon Sep 17 00:00:00 2001 From: Daria Phoebe Brashear Date: Mon, 23 Jul 2018 12:05:43 -0400 Subject: [PATCH] ipropd_slave: open hdb around kadm5_log_init in case recovery needed log_init in the event a log is found will do recovery. kadm5_log_replay will call methods which expect an hdb_db to be set but without this none is --- lib/kadm5/ipropd_slave.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/kadm5/ipropd_slave.c b/lib/kadm5/ipropd_slave.c index 0ec529ccf..140a294d6 100644 --- a/lib/kadm5/ipropd_slave.c +++ b/lib/kadm5/ipropd_slave.c @@ -791,10 +791,20 @@ main(int argc, char **argv) slave_status(context, status_file, "creating log file"); + ret = server_context->db->hdb_open(context, + server_context->db, + O_RDWR | O_CREAT, 0600); + if (ret) + krb5_err (context, 1, ret, "db->open"); + ret = kadm5_log_init (server_context); if (ret) krb5_err (context, 1, ret, "kadm5_log_init"); + ret = server_context->db->hdb_close (context, server_context->db); + if (ret) + krb5_err (context, 1, ret, "db->close"); + get_creds(context, keytab_str, &ccache, master); ret = krb5_sname_to_principal (context, master, IPROP_NAME, @@ -960,11 +970,21 @@ main(int argc, char **argv) continue; } + ret = server_context->db->hdb_open(context, + server_context->db, + O_RDWR | O_CREAT, 0600); + if (ret) + krb5_err (context, 1, ret, "db->open"); + ret = kadm5_log_init(server_context); if (ret) { krb5_err(context, IPROPD_RESTART, ret, "kadm5_log_init while " "handling a message from the master"); } + ret = server_context->db->hdb_close (context, server_context->db); + if (ret) + krb5_err (context, 1, ret, "db->close"); + switch (tmp) { case FOR_YOU : if (verbose)