From 685487e33d04c484f7a6276ed9b4fc76e9d4f318 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Fri, 15 Dec 2006 16:39:35 +0000
Subject: [PATCH] kadm5 init error check from HEAD

---
 contrib/slapd-modules/smbk5pwd/smbk5pwd.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/contrib/slapd-modules/smbk5pwd/smbk5pwd.c b/contrib/slapd-modules/smbk5pwd/smbk5pwd.c
index b96d4856c4..eeafe7b971 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 */
-- 
GitLab