c40e03
From b1f54d6b0a24a91ac3ef8b99b22ff68c2d0ca13d Mon Sep 17 00:00:00 2001
c40e03
From: Noel Power <noel.power@suse.com>
c40e03
Date: Thu, 23 Nov 2017 15:55:21 +0000
c40e03
Subject: [PATCH 1/2] s3:libads: net ads keytab list fails with "Key table name
c40e03
 malformed"
c40e03
c40e03
When keytab_name is NULL don't call smb_krb5_kt_open use ads_keytab_open
c40e03
instead, this function will determine the correct keytab to use.
c40e03
c40e03
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13166
c40e03
c40e03
Signed-off-by: Noel Power <noel.power@suse.com>
c40e03
Reviewed-by: Andreas Schneider <asn@samba.org>
c40e03
Reviewed-by: Ralph Boehme <slow@samba.org>
c40e03
(cherry picked from commit 3048ae318fc8b4d1b7663826972306372430a463)
c40e03
---
c40e03
 source3/libads/kerberos_keytab.c | 6 +++++-
c40e03
 1 file changed, 5 insertions(+), 1 deletion(-)
c40e03
c40e03
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
c40e03
index ff12ec04af6..ffd100c5636 100644
c40e03
--- a/source3/libads/kerberos_keytab.c
c40e03
+++ b/source3/libads/kerberos_keytab.c
c40e03
@@ -639,7 +639,11 @@ int ads_keytab_list(const char *keytab_name)
c40e03
 		return ret;
c40e03
 	}
c40e03
 
c40e03
-	ret = smb_krb5_kt_open(context, keytab_name, False, &keytab);
c40e03
+	if (keytab_name == NULL) {
c40e03
+		ret = ads_keytab_open(context, &keytab);
c40e03
+	} else {
c40e03
+		ret = smb_krb5_kt_open(context, keytab_name, False, &keytab);
c40e03
+	}
c40e03
 	if (ret) {
c40e03
 		DEBUG(1, ("smb_krb5_kt_open failed (%s)\n",
c40e03
 			  error_message(ret)));
c40e03
-- 
c40e03
2.15.0
c40e03
c40e03
c40e03
From 6e067b990a8cbb0589d3a83e699aa766a6fee939 Mon Sep 17 00:00:00 2001
c40e03
From: Noel Power <noel.power@suse.com>
c40e03
Date: Fri, 24 Nov 2017 07:06:27 +0000
c40e03
Subject: [PATCH 2/2] testprogs: Test net ads keytab list
c40e03
c40e03
Test that correct keytab is picked up.
c40e03
c40e03
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13166
c40e03
c40e03
Signed-off-by: Noel Power <noel.power@suse.com>
c40e03
Reviewed-by: Andreas Schneider <asn@samba.org>
c40e03
Reviewed-by: Ralph Boehme <slow@samba.org>
c40e03
(cherry picked from commit 4be05c835e9d8b8f13856d592aaf42b40ce397c2)
c40e03
---
c40e03
 testprogs/blackbox/test_net_ads.sh | 13 +++++++++++++
c40e03
 1 file changed, 13 insertions(+)
c40e03
c40e03
diff --git a/testprogs/blackbox/test_net_ads.sh b/testprogs/blackbox/test_net_ads.sh
c40e03
index bbd99b676bd..c5dbaf69ba2 100755
c40e03
--- a/testprogs/blackbox/test_net_ads.sh
c40e03
+++ b/testprogs/blackbox/test_net_ads.sh
c40e03
@@ -46,6 +46,19 @@ testit "testjoin (dedicated keytab)" $VALGRIND $net_tool ads testjoin -kP || fai
c40e03
 testit "changetrustpw (dedicated keytab)" $VALGRIND $net_tool ads changetrustpw || failed=`expr $failed + 1`
c40e03
 
c40e03
 testit "leave (dedicated keytab)" $VALGRIND $net_tool ads leave -U$DC_USERNAME%$DC_PASSWORD || failed=`expr $failed + 1`
c40e03
+
c40e03
+# if there is no keytab, try and create it
c40e03
+if [ ! -f $dedicated_keytab_file ]; then
c40e03
+  if [ $(command -v ktutil) >/dev/null ]; then
c40e03
+    printf "addent -password -p $DC_USERNAME@$REALM -k 1 -e rc4-hmac\n$DC_PASSWORD\nwkt $dedicated_keytab_file\n" | ktutil
c40e03
+  fi
c40e03
+fi
c40e03
+
c40e03
+if [  -f $dedicated_keytab_file ]; then
c40e03
+  testit "keytab list (dedicated keytab)" $VALGRIND $net_tool ads keytab list --option="kerberosmethod=dedicatedkeytab" --option="dedicatedkeytabfile=$dedicated_keytab_file" || failed=`expr $failed + 1`
c40e03
+  testit "keytab list keytab specified on cmdline" $VALGRIND $net_tool ads keytab list $dedicated_keytab_file || failed=`expr $failed + 1`
c40e03
+fi
c40e03
+
c40e03
 rm -f $dedicated_keytab_file
c40e03
 
c40e03
 testit_expect_failure "testjoin(not joined)" $VALGRIND $net_tool ads testjoin -kP || failed=`expr $failed + 1`
c40e03
-- 
c40e03
2.15.0
c40e03