svn rev #23709: branches/krb5-1-8/src/lib/gssapi/mechglue/

tlyu@MIT.EDU tlyu at MIT.EDU
Mon Feb 8 15:55:46 EST 2010


http://src.mit.edu/fisheye/changelog/krb5/?cs=23709
Commit By: tlyu
Log Message:
ticket: 6601
version_fixed: 1.8
status: resolved

pull up r23698 from trunk

 ------------------------------------------------------------------------
 r23698 | tlyu | 2010-02-05 15:52:42 -0500 (Fri, 05 Feb 2010) | 8 lines

 ticket: 6601
 tags: pullup
 target_version: 1.8

 Apply patch from Arlene Berry to handle the case where a mechanism
 implements set_cred_option but does not implement the requested
 option.


Changed Files:
U   branches/krb5-1-8/src/lib/gssapi/mechglue/g_set_cred_option.c
Modified: branches/krb5-1-8/src/lib/gssapi/mechglue/g_set_cred_option.c
===================================================================
--- branches/krb5-1-8/src/lib/gssapi/mechglue/g_set_cred_option.c	2010-02-08 20:55:43 UTC (rev 23708)
+++ branches/krb5-1-8/src/lib/gssapi/mechglue/g_set_cred_option.c	2010-02-08 20:55:46 UTC (rev 23709)
@@ -45,6 +45,8 @@
     gss_mechanism	mech;
     int			i;
     OM_uint32		status;
+    OM_uint32		mech_status;
+    OM_uint32		mech_minor_status;
 
     if (minor_status == NULL)
 	return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -66,14 +68,20 @@
 	}
 
 	if (mech->gssspi_set_cred_option == NULL) {
-	    status = GSS_S_UNAVAILABLE;
 	    continue;
 	}
 
-	status = (mech->gssspi_set_cred_option)(minor_status,
+	mech_status = (mech->gssspi_set_cred_option)(&mech_minor_status,
 						union_cred->cred_array[i],
 						desired_object,
 						value);
+        if (mech_status == GSS_S_UNAVAILABLE) {
+            continue;
+        }
+        else {
+            status = mech_status;
+            *minor_status = mech_minor_status;
+        }
 	if (status != GSS_S_COMPLETE) {
 	    map_error(minor_status, mech);
 	    break;




More information about the cvs-krb5 mailing list