svn commit: samba r13020 - branches/SAMBA_3_0/source/libsmb trunk/source/libsmb

gd at samba.org gd at samba.org
Wed Jan 18 22:40:01 GMT 2006


Author: gd
Date: 2006-01-18 22:40:00 +0000 (Wed, 18 Jan 2006)
New Revision: 13020

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13020

Log:
Prevent cli_krb5_get_ticket of getting into an infite loop. This whole
area of code needs to be reworked later on.

Guenther

Modified:
   branches/SAMBA_3_0/source/libsmb/clikrb5.c
   trunk/source/libsmb/clikrb5.c


Changeset:
Modified: branches/SAMBA_3_0/source/libsmb/clikrb5.c
===================================================================
--- branches/SAMBA_3_0/source/libsmb/clikrb5.c	2006-01-18 21:52:19 UTC (rev 13019)
+++ branches/SAMBA_3_0/source/libsmb/clikrb5.c	2006-01-18 22:40:00 UTC (rev 13020)
@@ -456,6 +456,7 @@
 	krb5_creds 		  creds;
 	krb5_data in_data;
 	BOOL creds_ready = False;
+	int i = 0, maxtries = 3;
 	
 	retval = krb5_parse_name(context, principal, &server);
 	if (retval) {
@@ -479,7 +480,7 @@
 		goto cleanup_creds;
 	}
 
-	while(!creds_ready) {
+	while (!creds_ready && (i < maxtries)) {
 		if ((retval = krb5_get_credentials(context, 0, ccache, 
 						   &creds, &credsp))) {
 			DEBUG(1,("ads_krb5_mk_req: krb5_get_credentials failed for %s (%s)\n",
@@ -497,6 +498,8 @@
 
 		if (!ads_cleanup_expired_creds(context, ccache, credsp))
 			creds_ready = True;
+
+		i++;
 	}
 
 	DEBUG(10,("ads_krb5_mk_req: Ticket (%s) in ccache (%s) is valid until: (%s - %u)\n",

Modified: trunk/source/libsmb/clikrb5.c
===================================================================
--- trunk/source/libsmb/clikrb5.c	2006-01-18 21:52:19 UTC (rev 13019)
+++ trunk/source/libsmb/clikrb5.c	2006-01-18 22:40:00 UTC (rev 13020)
@@ -457,6 +457,7 @@
 	krb5_creds 		  creds;
 	krb5_data in_data;
 	BOOL creds_ready = False;
+	int i = 0, maxtries = 3;
 	
 	retval = krb5_parse_name(context, principal, &server);
 	if (retval) {
@@ -480,7 +481,7 @@
 		goto cleanup_creds;
 	}
 
-	while(!creds_ready) {
+	while (!creds_ready && (i < maxtries)) {
 		if ((retval = krb5_get_credentials(context, 0, ccache, 
 						   &creds, &credsp))) {
 			DEBUG(1,("ads_krb5_mk_req: krb5_get_credentials failed for %s (%s)\n",
@@ -498,6 +499,8 @@
 
 		if (!ads_cleanup_expired_creds(context, ccache, credsp))
 			creds_ready = True;
+
+		i++;
 	}
 
 	DEBUG(10,("ads_krb5_mk_req: Ticket (%s) in ccache (%s:%s) is valid until: (%s - %u)\n",



More information about the samba-cvs mailing list