[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Tue Jul 12 12:39:02 UTC 2022


The branch, master has been updated
       via  116af0df4f7 s3:winbind: Use the canonical realm name to renew the credentials
       via  8bef8e3de9f s3:winbind: Create service principal inside add_ccache_to_list()
       via  2235a4aac4e lib:krb5_wrap: Add debug to ads_krb5_cli_get_ticket()
       via  28db1443750 s3:winbind: Improve debug message to print service in smb_krb5_renew_ticket()
       via  266d6ebc5d7 s3:winbind: Improve debug message to print the service in add_ccache_to_list()
       via  9409f1adc63 s3:winbind: Fix trailing whitespaces in winbindd_proto.h
       via  b1056442fd3 s3:winbind: Fix trailing whitespaces and spaces before tabs in winbindd_cred_cache.c
      from  2ec93ac6f34 smbd: follow-up fix for "if close fails just log it, don't crash"

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 116af0df4f74aa450cbb77c79f8cac4bfc288631
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 11:32:39 2022 +0200

    s3:winbind: Use the canonical realm name to renew the credentials
    
    Consider the following AD topology where all trusts are parent-child
    trusts:
    
                       ADOM.AFOREST.AD
    		   	|
                ACHILD.ADOM.AFOREST.AD
    			|
    AGRANDCHILD.ACHILD.ADOM.AFOREST.AD <-- Samba joined
    
    When logging into the Samba machine using pam_winbind with kerberos enabled
    with user ACHILD\user1, the ccache content is:
    
    	Default principal: user1 at ACHILD.ADOM.AFOREST.AD
    
    	Valid starting       Expires              Service principal
    	07/06/2022 16:09:23  07/06/2022 16:14:23  krbtgt/ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD
    	        renew until 07/13/2022 16:09:23
    -->	07/06/2022 16:09:23  07/06/2022 16:14:23  krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD <-- NOTE this TGT ticket
    	        renew until 07/13/2022 16:09:23
    	07/06/2022 16:09:23  07/06/2022 16:14:23  SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	        renew until 07/13/2022 16:09:23
    
    But when logging in with user ADOM\user1, the ccache content is:
    
    	Default principal: user1 at ADOM.AFOREST.AD
    
    	Valid starting       Expires              Service principal
    	07/06/2022 16:04:37  07/06/2022 16:09:37  krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD
    	        renew until 07/13/2022 16:04:37
    	07/06/2022 16:04:37  07/06/2022 16:09:37  SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	        renew until 07/13/2022 16:04:37
    
    MIT does not store the intermediate TGTs when there is more than one hop:
    
    	ads_krb5_cli_get_ticket: Getting ticket for service [SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD] using creds from [FILE:/tmp/krb5cc_11105] and impersonating [(null)]
    
    	Getting credentials user1 at ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD using ccache FILE:/tmp/krb5cc_11105
    	Starting with TGT for client realm: user1 at ADOM.AFOREST.AD -> krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD
    
    	Requesting TGT krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ADOM.AFOREST.AD using TGT krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD
    	Sending request to ADOM.AFOREST.AD
    	Received answer from stream 192.168.101.32:88
    	TGS reply is for user1 at ADOM.AFOREST.AD -> krbtgt/ACHILD.ADOM.AFOREST.AD at ADOM.AFOREST.AD with session key rc4-hmac/D88B
    -->	Received TGT for offpath realm ACHILD.ADOM.AFOREST.AD <-- NOTE this TGT ticket is not stored
    
    	Requesting TGT krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD using TGT krbtgt/ACHILD.ADOM.AFOREST.AD at ADOM.AFOREST.AD
    	Sending request (1748 bytes) to ACHILD.ADOM.AFOREST.AD
    	Received answer (1628 bytes) from stream 192.168.101.33:88
    	TGS reply is for user1 at ADOM.AFOREST.AD -> krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD with session key rc4-hmac/D015
    -->	Received TGT for service realm: krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD <-- NOTE this TGT is not stored
    
    	Requesting tickets for SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD, referrals on
    	Sending request (1721 bytes) to AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	Received answer (1647 bytes) from stream 192.168.101.34:88
    	TGS reply is for user1 at ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD with session key aes256-cts/345A
    	Received creds for desired service SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	Storing user1 at ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD in FILE:/tmp/krb5cc_11105
    
    In the case of ACHILD\user1:
    
    	ads_krb5_cli_get_ticket: Getting ticket for service [SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD] using creds from [FILE:/tmp/krb5cc_2000] and impersonating [(null)]
    
    	Getting credentials user1 at ACHILD.ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD using ccache FILE:/tmp/krb5cc_2000
    	Starting with TGT for client realm: user1 at ACHILD.ADOM.AFOREST.AD -> krbtgt/ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD
    
    	Requesting TGT krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD using TGT krbtgt/ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD
    	Sending request to ACHILD.ADOM.AFOREST.AD
    	Received answer from stream 192.168.101.33:88
    	TGS reply is for user1 at ACHILD.ADOM.AFOREST.AD -> krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD with session key rc4-hmac/0F60
    -->	Storing user1 at ACHILD.ADOM.AFOREST.AD -> krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD in FILE:/tmp/krb5cc_2000 <-- NOTE this TGT is stored
    	Received TGT for service realm: krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ACHILD.ADOM.AFOREST.AD
    
    	Requesting tickets for SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD, referrals on
    	Sending request (1745 bytes) to AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	Received answer (1675 bytes) from stream 192.168.101.34:88
    	TGS reply is for user1 at ACHILD.ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD with session key aes256-cts/3576
    	Received creds for desired service SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD
    	Storing user1 at ACHILD.ADOM.AFOREST.AD -> SAMBA$@AGRANDCHILD.ACHILD.ADOM.AFOREST.AD in FILE:/tmp/krb5cc_2000
    
    The result is that winbindd can't refresh the tickets for ADOM\user1
    because the local realm is used to build the TGT service name.
    
    	smb_krb5_renew_ticket: Using FILE:/tmp/krb5cc_11105 as ccache for client 'user1 at ADOM.AFOREST.AD' and service 'krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at AGRANDCHILD.ACHILD.ADOM.AFOREST.AD'
    
    	Retrieving user1 at ADOM.AFOREST.AD -> krbtgt/AGRANDCHILD.ACHILD.ADOM.AFOREST.AD at ADOM.AFOREST.AD from FILE:/tmp/krb5cc_11105 with result: -1765328243/Matching credential not found (filename: /tmp/krb5cc_11105)
    
    The canonical realm name must be used instead:
    
    	smb_krb5_renew_ticket: Using FILE:/tmp/krb5cc_11105 as ccache for client 'user1 at ADOM.AFOREST.AD' and service 'krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD'
    
    	Retrieving user1 at ADOM.AFOREST.AD -> krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD from FILE:/tmp/krb5cc_11105 with result: 0/Success
    	Get cred via TGT krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD after requesting krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD (canonicalize off)
    	Sending request to ADOM.AFOREST.AD
    	Received answer from stream 192.168.101.32:88
    	TGS reply is for user1 at ADOM.AFOREST.AD -> krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD with session key aes256-cts/8C7B
    	Storing user1 at ADOM.AFOREST.AD -> krbtgt/ADOM.AFOREST.AD at ADOM.AFOREST.AD in FILE:/tmp/krb5cc_11105
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14979
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Tue Jul 12 12:38:55 UTC 2022 on sn-devel-184

commit 8bef8e3de9fc96ff45319f80529e878977563f3a
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 11:22:05 2022 +0200

    s3:winbind: Create service principal inside add_ccache_to_list()
    
    The function can build the service principal itself, there is no
    need to do it in the caller. This removes code duplication.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14979
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 2235a4aac4e879c0ffe462f9eed454c7792efc85
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 12:33:15 2022 +0200

    lib:krb5_wrap: Add debug to ads_krb5_cli_get_ticket()
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 28db1443750b167909dbe09aaac1e28bcf95be50
Author: Samuel Cabrero <scabrero at suse.de>
Date:   Thu Jul 7 14:13:02 2022 +0200

    s3:winbind: Improve debug message to print service in smb_krb5_renew_ticket()
    
    Signed-off-by: Samuel Cabrero <scabrero at suse.de>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 266d6ebc5d79d91753f6ef777e0bedcbc0d7193b
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 11:28:03 2022 +0200

    s3:winbind: Improve debug message to print the service in add_ccache_to_list()
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 9409f1adc63b53039ca26d5a85e67f9fe759789d
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 11:19:47 2022 +0200

    s3:winbind: Fix trailing whitespaces in winbindd_proto.h
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit b1056442fd3044501edeb7f8f4e8698e2b5ccc7c
Author: Samuel Cabrero <scabrero at samba.org>
Date:   Thu Jul 7 11:18:42 2022 +0200

    s3:winbind: Fix trailing whitespaces and spaces before tabs in winbindd_cred_cache.c
    
    Signed-off-by: Samuel Cabrero <scabrero at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 lib/krb5_wrap/krb5_samba.c             |  7 ++++-
 source3/winbindd/winbindd_cred_cache.c | 51 +++++++++++++++++-----------------
 source3/winbindd/winbindd_pam.c        | 15 ----------
 source3/winbindd/winbindd_proto.h      | 15 +++++-----
 4 files changed, 39 insertions(+), 49 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c
index 57ffdc72780..2b9dc97a1bc 100644
--- a/lib/krb5_wrap/krb5_samba.c
+++ b/lib/krb5_wrap/krb5_samba.c
@@ -1084,7 +1084,8 @@ krb5_error_code smb_krb5_renew_ticket(const char *ccache_string,
 		goto done;
 	}
 
-	DBG_DEBUG("Using %s as ccache for '%s'\n", ccache_string, client_string);
+	DBG_DEBUG("Using %s as ccache for client '%s' and service '%s'\n",
+		  ccache_string, client_string, service_string);
 
 	/* FIXME: we should not fall back to defaults */
 	ret = krb5_cc_resolve(context, discard_const_p(char, ccache_string), &ccache);
@@ -3812,6 +3813,10 @@ int ads_krb5_cli_get_ticket(TALLOC_CTX *mem_ctx,
 		ENCTYPE_NULL};
 	bool ok;
 
+	DBG_DEBUG("Getting ticket for service [%s] using creds from [%s] "
+		  "and impersonating [%s]\n",
+		  principal, ccname, impersonate_princ_s);
+
 	retval = smb_krb5_init_context_common(&context);
 	if (retval != 0) {
 		DBG_ERR("kerberos init context failed (%s)\n",
diff --git a/source3/winbindd/winbindd_cred_cache.c b/source3/winbindd/winbindd_cred_cache.c
index 6c65db6a73f..bdc16041eee 100644
--- a/source3/winbindd/winbindd_cred_cache.c
+++ b/source3/winbindd/winbindd_cred_cache.c
@@ -127,7 +127,7 @@ static void krb5_ticket_refresh_handler(struct tevent_context *event_ctx,
 #ifdef HAVE_KRB5
 
 	/* Kinit again if we have the user password and we can't renew the old
-	 * tgt anymore 
+	 * tgt anymore
 	 * NB
 	 * This happens when machine are put to sleep for a very long time. */
 
@@ -160,10 +160,10 @@ rekinit:
 				 * it, ignore error here */
 				ads_kdestroy(entry->ccname);
 
-				/* Don't break the ticket refresh chain: retry 
-				 * refreshing ticket sometime later when KDC is 
+				/* Don't break the ticket refresh chain: retry
+				 * refreshing ticket sometime later when KDC is
 				 * unreachable -- BoYang. More error code handling
-				 * here? 
+				 * here?
 				 * */
 
 				if ((ret == KRB5_KDC_UNREACH)
@@ -196,9 +196,9 @@ rekinit:
 #endif
 			goto done;
 		} else {
-				/* can this happen? 
+				/* can this happen?
 				 * No cached credentials
-				 * destroy ticket and refresh chain 
+				 * destroy ticket and refresh chain
 				 * */
 				ads_kdestroy(entry->ccname);
 				TALLOC_FREE(entry->event);
@@ -229,18 +229,18 @@ rekinit:
 
 		/* evil rises here, we refresh ticket failed,
 		 * but the ticket might be expired. Therefore,
-		 * When we refresh ticket failed, destory the 
+		 * When we refresh ticket failed, destory the
 		 * ticket */
 
 		ads_kdestroy(entry->ccname);
 
 		/* avoid breaking the renewal chain: retry in
 		 * lp_winbind_cache_time() seconds when the KDC was not
-		 * available right now. 
-		 * the return code can be KRB5_REALM_CANT_RESOLVE. 
+		 * available right now.
+		 * the return code can be KRB5_REALM_CANT_RESOLVE.
 		 * More error code handling here? */
 
-		if ((ret == KRB5_KDC_UNREACH) 
+		if ((ret == KRB5_KDC_UNREACH)
 		    || (ret == KRB5_REALM_CANT_RESOLVE)) {
 #if defined(DEBUG_KRB5_TKT_RENEWAL)
 			new_start = time(NULL) + 30;
@@ -257,7 +257,7 @@ rekinit:
 
 		/* This is evil, if the ticket was already expired.
 		 * renew ticket function returns KRB5KRB_AP_ERR_TKT_EXPIRED.
-		 * But there is still a chance that we can rekinit it. 
+		 * But there is still a chance that we can rekinit it.
 		 *
 		 * This happens when user login in online mode, and then network
 		 * down or something cause winbind goes offline for a very long time,
@@ -274,7 +274,7 @@ rekinit:
 	}
 
 done:
-	/* in cases that ticket will be unrenewable soon, we don't try to renew ticket 
+	/* in cases that ticket will be unrenewable soon, we don't try to renew ticket
 	 * but try to regain ticket if it is possible */
 	if (entry->renew_until && expire_time
 	     && (entry->renew_until <= expire_time)) {
@@ -356,7 +356,7 @@ static void krb5_ticket_gain_handler(struct tevent_context *event_ctx,
 		DEBUG(3,("krb5_ticket_gain_handler: "
 			"could not kinit: %s\n",
 			error_message(ret)));
-		/* evil. If we cannot do it, destroy any the __maybe__ 
+		/* evil. If we cannot do it, destroy any the __maybe__
 		 * __existing__ ticket */
 		ads_kdestroy(entry->ccname);
 		goto retry_later;
@@ -369,9 +369,9 @@ static void krb5_ticket_gain_handler(struct tevent_context *event_ctx,
 	goto got_ticket;
 
   retry_later:
- 
+
 #if defined(DEBUG_KRB5_TKT_RENEWAL)
- 	t = timeval_set(time(NULL) + 30, 0);
+	t = timeval_set(time(NULL) + 30, 0);
 #else
 	t = timeval_current_ofs(MAX(30, lp_winbind_cache_time()), 0);
 #endif
@@ -493,7 +493,6 @@ bool ccache_entry_identical(const char *username,
 
 NTSTATUS add_ccache_to_list(const char *princ_name,
 			    const char *ccname,
-			    const char *service,
 			    const char *username,
 			    const char *pass,
 			    const char *realm,
@@ -613,12 +612,6 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
 			goto no_mem;
 		}
 	}
-	if (service) {
-		entry->service = talloc_strdup(entry, service);
-		if (!entry->service) {
-			goto no_mem;
-		}
-	}
 	if (canon_principal != NULL) {
 		entry->canon_principal = talloc_strdup(entry, canon_principal);
 		if (entry->canon_principal == NULL) {
@@ -642,6 +635,15 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
 		goto no_mem;
 	}
 
+	entry->service = talloc_asprintf(entry,
+					 "%s/%s@%s",
+					 KRB5_TGS_NAME,
+					 canon_realm,
+					 canon_realm);
+	if (entry->service == NULL) {
+		goto no_mem;
+	}
+
 	entry->create_time = create_time;
 	entry->renew_until = renew_until;
 	entry->uid = uid;
@@ -681,9 +683,8 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
 
 	DLIST_ADD(ccache_list, entry);
 
-	DEBUG(10,("add_ccache_to_list: "
-		"added ccache [%s] for user [%s] to the list\n",
-		ccname, username));
+	DBG_DEBUG("Added ccache [%s] for user [%s] and service [%s]\n",
+		  entry->ccname, entry->username, entry->service);
 
 	if (entry->event) {
 		/*
diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
index 07835e9a263..1963163a865 100644
--- a/source3/winbindd/winbindd_pam.c
+++ b/source3/winbindd/winbindd_pam.c
@@ -730,7 +730,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
 	krb5_error_code krb5_ret;
 	const char *cc = NULL;
 	const char *principal_s = NULL;
-	const char *service = NULL;
 	char *realm = NULL;
 	fstring name_namespace, name_domain, name_user;
 	time_t ticket_lifetime = 0;
@@ -817,11 +816,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	service = talloc_asprintf(mem_ctx, "%s/%s@%s", KRB5_TGS_NAME, realm, realm);
-	if (service == NULL) {
-		return NT_STATUS_NO_MEMORY;
-	}
-
 	local_service = talloc_asprintf(mem_ctx, "%s$@%s",
 					lp_netbios_name(), lp_realm());
 	if (local_service == NULL) {
@@ -912,7 +906,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
 
 		result = add_ccache_to_list(principal_s,
 					    cc,
-					    service,
 					    user,
 					    pass,
 					    realm,
@@ -1285,7 +1278,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
 			const char *cc = NULL;
 			char *realm = NULL;
 			const char *principal_s = NULL;
-			const char *service = NULL;
 			const char *user_ccache_file;
 
 			if (domain->alt_name == NULL) {
@@ -1325,12 +1317,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
 				goto out;
 			}
 
-			service = talloc_asprintf(tmp_ctx, "%s/%s@%s", KRB5_TGS_NAME, realm, realm);
-			if (service == NULL) {
-				result = NT_STATUS_NO_MEMORY;
-				goto out;
-			}
-
 			if (user_ccache_file != NULL) {
 
 				if (_krb5ccname != NULL) {
@@ -1340,7 +1326,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
 
 				result = add_ccache_to_list(principal_s,
 							    cc,
-							    service,
 							    user,
 							    pass,
 							    realm,
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index 7c5f7ad91bb..6073baca36f 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -119,15 +119,15 @@ NTSTATUS wb_cache_trusted_domains(struct winbindd_domain *domain,
 				  struct netr_DomainTrustList *trusts);
 
 NTSTATUS wcache_cached_creds_exist(struct winbindd_domain *domain, const struct dom_sid *sid);
-NTSTATUS wcache_get_creds(struct winbindd_domain *domain, 
-			  TALLOC_CTX *mem_ctx, 
+NTSTATUS wcache_get_creds(struct winbindd_domain *domain,
+			  TALLOC_CTX *mem_ctx,
 			  const struct dom_sid *sid,
 			  const uint8_t **cached_nt_pass,
 			  const uint8_t **cached_salt);
-NTSTATUS wcache_save_creds(struct winbindd_domain *domain, 
+NTSTATUS wcache_save_creds(struct winbindd_domain *domain,
 			   const struct dom_sid *sid,
 			   const uint8_t nt_pass[NT_HASH_LEN]);
-void wcache_invalidate_samlogon(struct winbindd_domain *domain, 
+void wcache_invalidate_samlogon(struct winbindd_domain *domain,
 				const struct dom_sid *user_sid);
 bool wcache_invalidate_cache(void);
 bool wcache_invalidate_cache_noinit(void);
@@ -146,7 +146,7 @@ void cache_name2sid_trusted(struct winbindd_domain *domain,
 			const char *name,
 			enum lsa_SidType type,
 			const struct dom_sid *sid);
-void cache_name2sid(struct winbindd_domain *domain, 
+void cache_name2sid(struct winbindd_domain *domain,
 		    const char *domain_name, const char *name,
 		    enum lsa_SidType type, const struct dom_sid *sid);
 NTSTATUS wcache_query_user_fullname(struct winbindd_domain *domain,
@@ -230,7 +230,6 @@ void ccache_remove_all_after_fork(void);
 void ccache_regain_all_now(void);
 NTSTATUS add_ccache_to_list(const char *princ_name,
 			    const char *ccname,
-			    const char *service,
 			    const char *username,
 			    const char *password,
 			    const char *realm,
@@ -259,8 +258,8 @@ NTSTATUS winbindd_get_creds(struct winbindd_domain *domain,
 			    const uint8_t **cached_nt_pass,
 			    const uint8_t **cred_salt);
 NTSTATUS winbindd_store_creds(struct winbindd_domain *domain,
-			      const char *user, 
-			      const char *pass, 
+			      const char *user,
+			      const char *pass,
 			      struct netr_SamInfo3 *info3);
 NTSTATUS winbindd_update_creds_by_info3(struct winbindd_domain *domain,
 				        const char *user,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list