Make gss_acquire_cred_with_password() like Solaris
Solaris'/Illumos' gss_acquire_cred_with_password() does not have side-effects. MIT and Heimdal have differed, but it's now agreed that the Solaris/Illumos behavior is correct. To make a credential obained with gss_acquire_cred_with_password() available to other processes, use gss_store_cred().
This commit is contained in:
		| @@ -104,6 +104,12 @@ _gss_acquire_mech_cred(OM_uint32 *minor_status, | ||||
|     return major_status; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * This function is not a public interface and is deprecated anyways, do | ||||
|  * not use.  Use gss_acquire_cred_with_password() instead for now. | ||||
|  * | ||||
|  * @deprecated | ||||
|  */ | ||||
| OM_uint32 | ||||
| _gss_acquire_cred_ext(OM_uint32 *minor_status, | ||||
|     gss_const_name_t desired_name, | ||||
| @@ -168,8 +174,11 @@ _gss_acquire_cred_ext(OM_uint32 *minor_status, | ||||
| 					      credential_type, credential_data, | ||||
| 					      time_req, desired_mech, cred_usage, | ||||
| 					      &mc); | ||||
| 	if (GSS_ERROR(major_status)) | ||||
| 	if (GSS_ERROR(major_status)) { | ||||
|             if (mechs->count == 1) | ||||
|                 _gss_mg_error(m, major_status, *minor_status); | ||||
| 	    continue; | ||||
|         } | ||||
|  | ||||
| 	HEIM_SLIST_INSERT_HEAD(&cred->gc_mc, mc, gmc_link); | ||||
|     } | ||||
| @@ -180,7 +189,8 @@ _gss_acquire_cred_ext(OM_uint32 *minor_status, | ||||
|      */ | ||||
|     if (!HEIM_SLIST_FIRST(&cred->gc_mc)) { | ||||
| 	free(cred); | ||||
| 	*minor_status = 0; | ||||
|         if (mechs->count > 1) | ||||
|             *minor_status = 0; | ||||
| 	return GSS_S_NO_CRED; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -93,7 +93,8 @@ gss_acquire_cred_with_password(OM_uint32 *minor_status, | ||||
|  | ||||
| 	if (!HEIM_SLIST_FIRST(&new_cred->gc_mc)) { | ||||
| 	    free(new_cred); | ||||
| 	    *minor_status = 0; | ||||
|             if (desired_mechs->count > 1) | ||||
|                 *minor_status = 0; | ||||
| 	    return GSS_S_NO_CRED; | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Nicolas Williams
					Nicolas Williams