aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2006-11-11 01:57:23 +0000
committerTom Yu <tlyu@mit.edu>2006-11-11 01:57:23 +0000
commit1b184093b425dcea3084d76976d34a7519de1e62 (patch)
tree9646fc0c4464f9a6472676666e9dbcbfec361e15
parentaa75cd71bd41afb2b5cb524bb4ef9ca5d6ab721c (diff)
downloadkrb5-1b184093b425dcea3084d76976d34a7519de1e62.zip
krb5-1b184093b425dcea3084d76976d34a7519de1e62.tar.gz
krb5-1b184093b425dcea3084d76976d34a7519de1e62.tar.bz2
pull up r18793 from trunk
r18793@cathode-dark-space: rra | 2006-11-09 18:29:26 -0500 ticket: new subject: Delay kadmind random number initialization until after fork Component: krb5-admin Version_Reported: 1.4.4 Target_Version 1.6 Tags: pullup Delay initialization of the random number generator in kadmind until after the fork and backgrounding of the process. Otherwise, a lack of sufficient entropy during the system boot process will delay system boot on systems that run each init script in series and that start kadmind via an init script. ticket: 4693 version_fixed: 1.6 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@18797 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/kadmin/server/ovsec_kadmd.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/kadmin/server/ovsec_kadmd.c b/src/kadmin/server/ovsec_kadmd.c
index 1efdf07..48fc38d 100644
--- a/src/kadmin/server/ovsec_kadmd.c
+++ b/src/kadmin/server/ovsec_kadmd.c
@@ -301,15 +301,6 @@ int main(int argc, char *argv[])
krb5_klog_init(context, "admin_server", whoami, 1);
- krb5_klog_syslog(LOG_INFO, "Seeding random number generator");
- ret = krb5_c_random_os_entropy(context, 1, NULL);
- if(ret) {
- krb5_klog_syslog(LOG_ERR,
- "Error getting random seed: %s, aborting",
- krb5_get_error_message (context, ret));
- exit(1);
- }
-
if((ret = kadm5_init("kadmind", NULL,
NULL, &params,
KADM5_STRUCT_VERSION,
@@ -639,6 +630,17 @@ kterr:
exit(1);
}
+ krb5_klog_syslog(LOG_INFO, "Seeding random number generator");
+ ret = krb5_c_random_os_entropy(context, 1, NULL);
+ if (ret) {
+ krb5_klog_syslog(LOG_ERR, "Error getting random seed: %s, aborting",
+ krb5_get_error_message(context, ret));
+ svcauth_gssapi_unset_names();
+ kadm5_destroy(global_server_handle);
+ krb5_klog_close(context);
+ exit(1);
+ }
+
setup_signal_handlers();
krb5_klog_syslog(LOG_INFO, "starting");
kadm_svc_run(&params);