diff --git a/contrib/slapd-modules/smbk5pwd/smbk5pwd.c b/contrib/slapd-modules/smbk5pwd/smbk5pwd.c index b96d4856c4e27cb6c424bc25060f27617965377c..eeafe7b9710d6a77b3066ebc855080b19540615c 100644 --- a/contrib/slapd-modules/smbk5pwd/smbk5pwd.c +++ b/contrib/slapd-modules/smbk5pwd/smbk5pwd.c @@ -818,20 +818,32 @@ smbk5pwd_modules_init( smbk5pwd_t *pi ) ret = krb5_init_context(&context); if (ret) { Debug( LDAP_DEBUG_ANY, "smbk5pwd: " - "unable to initialize krb5 context.\n", - 0, 0, 0 ); + "unable to initialize krb5 context (%d).\n", + ret, 0, 0 ); oc_krb5KDCEntry = NULL; return -1; } - /* FIXME: check return code? */ ret = kadm5_s_init_with_password_ctx( context, KADM5_ADMIN_SERVICE, NULL, KADM5_ADMIN_SERVICE, &conf, 0, 0, &kadm_context ); + if (ret) { + char *err_str, *err_msg = "<unknown error>"; + err_str = krb5_get_error_string( context ); + if (!err_str) + err_msg = krb5_get_err_text( context, ret ); + Debug( LDAP_DEBUG_ANY, "smbk5pwd: " + "unable to initialize krb5 admin context: %s (%d).\n", + err_str ? err_str : err_msg, ret, 0 ); + if (err_str) + krb5_free_error_string( context, err_str ); + krb5_free_context( context ); + oc_krb5KDCEntry = NULL; + return -1; + } - /* FIXME: check return code? */ db = _kadm5_s_get_db( kadm_context ); } #endif /* DO_KRB5 */