gssapi: remove non-mech status from _gss_mg_error() from Heimdal-520
_gss_mg_error() should only handle mechanism-specific status codes which are returned in minor_status. major_status has a global namespace.
This commit is contained in:
		 Luke Howard
					Luke Howard
				
			
				
					committed by
					
						 Nico Williams
						Nico Williams
					
				
			
			
				
	
			
			
			 Nico Williams
						Nico Williams
					
				
			
						parent
						
							83f15553e0
						
					
				
				
					commit
					e9b3b2326d
				
			| @@ -1,11 +1,46 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009 Kungliga Tekniska Högskolan | ||||
|  * (Royal Institute of Technology, Stockholm, Sweden). | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Portions Copyright (c) 2010 Apple Inc. All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions | ||||
|  * are met: | ||||
|  * | ||||
|  * 1. Redistributions of source code must retain the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer. | ||||
|  * | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer in the | ||||
|  *    documentation and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * 3. Neither the name of the Institute nor the names of its contributors | ||||
|  *    may be used to endorse or promote products derived from this software | ||||
|  *    without specific prior written permission. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND | ||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE | ||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
|  * SUCH DAMAGE. | ||||
|  */ | ||||
|  | ||||
| #include "mech_locl.h" | ||||
| #include "heim_threads.h" | ||||
| #include <krb5.h> | ||||
| #include "krb5_locl.h" | ||||
|  | ||||
| struct mg_thread_ctx { | ||||
|     gss_OID mech; | ||||
|     OM_uint32 maj_stat; | ||||
|     OM_uint32 min_stat; | ||||
|     gss_buffer_desc maj_error; | ||||
|     gss_buffer_desc min_error; | ||||
| }; | ||||
|  | ||||
| @@ -23,8 +58,8 @@ destroy_context(void *ptr) | ||||
|     if (mg == NULL) | ||||
| 	return; | ||||
|  | ||||
|     gss_release_buffer(&junk, &mg->maj_error); | ||||
|     gss_release_buffer(&junk, &mg->min_error); | ||||
|  | ||||
|     free(mg); | ||||
| } | ||||
|  | ||||
| @@ -63,8 +98,9 @@ _gss_mechglue_thread(void) | ||||
| } | ||||
|  | ||||
| OM_uint32 | ||||
| _gss_mg_get_error(const gss_OID mech, OM_uint32 type, | ||||
| 		  OM_uint32 value, gss_buffer_t string) | ||||
| _gss_mg_get_error(const gss_OID mech, | ||||
| 		  OM_uint32 value, | ||||
| 		  gss_buffer_t string) | ||||
| { | ||||
|     struct mg_thread_ctx *mg; | ||||
|  | ||||
| @@ -72,45 +108,25 @@ _gss_mg_get_error(const gss_OID mech, OM_uint32 type, | ||||
|     if (mg == NULL) | ||||
| 	return GSS_S_BAD_STATUS; | ||||
|  | ||||
| #if 0 | ||||
|     /* | ||||
|      * We cant check the mech here since a pseudo-mech might have | ||||
|      * called an lower layer and then the mech info is all broken | ||||
|      */ | ||||
|     if (mech != NULL && gss_oid_equal(mg->mech, mech) == 0) | ||||
|     if (value != mg->min_stat || mg->min_error.length == 0) { | ||||
| 	_mg_buffer_zero(string); | ||||
| 	return GSS_S_BAD_STATUS; | ||||
| #endif | ||||
|  | ||||
|     switch (type) { | ||||
|     case GSS_C_GSS_CODE: { | ||||
| 	if (value != mg->maj_stat || mg->maj_error.length == 0) | ||||
| 	    break; | ||||
| 	string->value = malloc(mg->maj_error.length + 1); | ||||
| 	string->length = mg->maj_error.length; | ||||
| 	memcpy(string->value, mg->maj_error.value, mg->maj_error.length); | ||||
|         ((char *) string->value)[string->length] = '\0'; | ||||
| 	return GSS_S_COMPLETE; | ||||
|     } | ||||
|     case GSS_C_MECH_CODE: { | ||||
| 	if (value != mg->min_stat || mg->min_error.length == 0) | ||||
| 	    break; | ||||
| 	string->value = malloc(mg->min_error.length + 1); | ||||
| 	string->length = mg->min_error.length; | ||||
| 	memcpy(string->value, mg->min_error.value, mg->min_error.length); | ||||
|         ((char *) string->value)[string->length] = '\0'; | ||||
| 	return GSS_S_COMPLETE; | ||||
|     string->value = malloc(mg->min_error.length); | ||||
|     if (string->value == NULL) { | ||||
| 	_mg_buffer_zero(string); | ||||
| 	return GSS_S_FAILURE; | ||||
|     } | ||||
|     } | ||||
|     string->value = NULL; | ||||
|     string->length = 0; | ||||
|     return GSS_S_BAD_STATUS; | ||||
|     string->length = mg->min_error.length; | ||||
|     memcpy(string->value, mg->min_error.value, mg->min_error.length); | ||||
|     return GSS_S_COMPLETE; | ||||
| } | ||||
|  | ||||
| void | ||||
| _gss_mg_error(gssapi_mech_interface m, OM_uint32 maj, OM_uint32 min) | ||||
| _gss_mg_error(struct gssapi_mech_interface_desc *m, OM_uint32 min) | ||||
| { | ||||
|     OM_uint32 major_status, minor_status; | ||||
|     OM_uint32 message_content; | ||||
|     OM_uint32 message_content = 0; | ||||
|     struct mg_thread_ctx *mg; | ||||
|  | ||||
|     /* | ||||
| @@ -124,33 +140,19 @@ _gss_mg_error(gssapi_mech_interface m, OM_uint32 maj, OM_uint32 min) | ||||
|     if (mg == NULL) | ||||
| 	return; | ||||
|  | ||||
|     gss_release_buffer(&minor_status, &mg->maj_error); | ||||
|     gss_release_buffer(&minor_status, &mg->min_error); | ||||
|  | ||||
|     mg->mech = &m->gm_mech_oid; | ||||
|     mg->maj_stat = maj; | ||||
|     mg->min_stat = min; | ||||
|  | ||||
|     major_status = m->gm_display_status(&minor_status, | ||||
| 					maj, | ||||
| 					GSS_C_GSS_CODE, | ||||
| 					&m->gm_mech_oid, | ||||
| 					&message_content, | ||||
| 					&mg->maj_error); | ||||
|     if (GSS_ERROR(major_status)) { | ||||
| 	mg->maj_error.value = NULL; | ||||
| 	mg->maj_error.length = 0; | ||||
|     } | ||||
|     major_status = m->gm_display_status(&minor_status, | ||||
| 					min, | ||||
| 					GSS_C_MECH_CODE, | ||||
| 					&m->gm_mech_oid, | ||||
| 					&message_content, | ||||
| 					&mg->min_error); | ||||
|     if (GSS_ERROR(major_status)) { | ||||
| 	mg->min_error.value = NULL; | ||||
| 	mg->min_error.length = 0; | ||||
|     } | ||||
|     if (major_status != GSS_S_COMPLETE) | ||||
| 	_mg_buffer_zero(&mg->min_error); | ||||
| } | ||||
|  | ||||
| void | ||||
| @@ -159,5 +161,5 @@ gss_mg_collect_error(gss_OID mech, OM_uint32 maj, OM_uint32 min) | ||||
|     gssapi_mech_interface m = __gss_get_mechanism(mech); | ||||
|     if (m == NULL) | ||||
| 	return; | ||||
|     _gss_mg_error(m, maj, min); | ||||
|     _gss_mg_error(m, min); | ||||
| } | ||||
|   | ||||
| @@ -35,7 +35,7 @@ struct _gss_context { | ||||
| }; | ||||
|  | ||||
| void | ||||
| _gss_mg_error(gssapi_mech_interface, OM_uint32, OM_uint32); | ||||
| _gss_mg_error(gssapi_mech_interface, OM_uint32); | ||||
|  | ||||
| OM_uint32 | ||||
| _gss_mg_get_error(const gss_OID, OM_uint32, OM_uint32, gss_buffer_t); | ||||
| _gss_mg_get_error(const gss_OID, OM_uint32, gss_buffer_t); | ||||
|   | ||||
| @@ -237,7 +237,7 @@ gss_accept_sec_context(OM_uint32 *minor_status, | ||||
| 	if (major_status != GSS_S_COMPLETE && | ||||
| 	    major_status != GSS_S_CONTINUE_NEEDED) | ||||
| 	{ | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		gss_delete_sec_context(&junk, context_handle, NULL); | ||||
| 		return (major_status); | ||||
| 	} | ||||
|   | ||||
| @@ -214,7 +214,7 @@ gss_acquire_cred_from(OM_uint32 *minor_status, | ||||
| 					 cred_store, &mc, &cred_time); | ||||
| 	if (major_status != GSS_S_COMPLETE) { | ||||
|             if (mechs->count == 1) | ||||
|                 _gss_mg_error(m, major_status, *minor_status); | ||||
|                 _gss_mg_error(m, *minor_status); | ||||
| 	    continue; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -184,7 +184,7 @@ gss_add_cred_from(OM_uint32 *minor_status, | ||||
| 					     cred_store, NULL, | ||||
| 					     initiator_time_rec, acceptor_time_rec); | ||||
|         if (major_status != GSS_S_COMPLETE) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         goto done; | ||||
|     } | ||||
|  | ||||
| @@ -202,7 +202,7 @@ gss_add_cred_from(OM_uint32 *minor_status, | ||||
| 					 cred_store, &new_mc, | ||||
| 					 initiator_time_rec, acceptor_time_rec); | ||||
|     if (major_status != GSS_S_COMPLETE) { | ||||
|         _gss_mg_error(m, major_status, *minor_status); | ||||
|         _gss_mg_error(m, *minor_status); | ||||
|         goto done; | ||||
|     } | ||||
|     HEIM_SLIST_INSERT_HEAD(&mut_cred->gc_mc, new_mc, gmc_link); | ||||
|   | ||||
| @@ -77,7 +77,7 @@ gss_canonicalize_name(OM_uint32 *minor_status, | ||||
| 	major_status = m->gm_canonicalize_name(minor_status, | ||||
| 	    mn->gmn_name, mech_type, &new_canonical_name); | ||||
| 	if (major_status) { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		return (major_status); | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -56,7 +56,7 @@ gss_delete_name_attribute(OM_uint32 *minor_status, | ||||
|                                                    mn->gmn_name, | ||||
|                                                    attr); | ||||
|         if (GSS_ERROR(major_status)) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         else | ||||
|             break; | ||||
|     } | ||||
|   | ||||
| @@ -59,7 +59,7 @@ gss_display_name_ext(OM_uint32 *minor_status, | ||||
|                                               display_as_name_type, | ||||
|                                               display_name); | ||||
|         if (GSS_ERROR(major_status)) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         else | ||||
|             break; | ||||
|     } | ||||
|   | ||||
| @@ -166,15 +166,6 @@ gss_display_status(OM_uint32 *minor_status, | ||||
| 	_mg_buffer_zero(status_string); | ||||
| 	*message_context = 0; | ||||
|  | ||||
| 	major_status = _gss_mg_get_error(mech_type, status_type, | ||||
| 					 status_value, status_string); | ||||
| 	if (major_status == GSS_S_COMPLETE) { | ||||
|  | ||||
| 	    *message_context = 0; | ||||
| 	    *minor_status = 0; | ||||
| 	    return GSS_S_COMPLETE; | ||||
| 	} | ||||
|  | ||||
| 	*minor_status = 0; | ||||
| 	switch (status_type) { | ||||
| 	case GSS_C_GSS_CODE: { | ||||
| @@ -203,6 +194,14 @@ gss_display_status(OM_uint32 *minor_status, | ||||
| 		char *buf = NULL; | ||||
| 		int e; | ||||
|  | ||||
| 		major_status = _gss_mg_get_error(mech_type, status_value, | ||||
| 						 status_string); | ||||
| 		if (major_status == GSS_S_COMPLETE) { | ||||
| 		    *message_context = 0; | ||||
| 		    *minor_status = 0; | ||||
| 		    return GSS_S_COMPLETE; | ||||
| 		} | ||||
|  | ||||
| 		maj_junk = gss_oid_to_str(&min_junk, mech_type, &oid); | ||||
| 		if (maj_junk != GSS_S_COMPLETE) { | ||||
| 		    oid.value = rk_UNCONST("unknown"); | ||||
|   | ||||
| @@ -86,7 +86,7 @@ copy_cred_element(OM_uint32 *minor_status, | ||||
|                                               &initiator_lifetime, | ||||
|                                               &acceptor_lifetime, &cred_usage); | ||||
|     if (major_status) { | ||||
|         _gss_mg_error(m, major_status, *minor_status); | ||||
|         _gss_mg_error(m, *minor_status); | ||||
|         return major_status; | ||||
|     } | ||||
|  | ||||
| @@ -102,7 +102,7 @@ copy_cred_element(OM_uint32 *minor_status, | ||||
| 					NULL, | ||||
| 					NULL); | ||||
|     if (major_status) | ||||
|         _gss_mg_error(m, major_status, *minor_status); | ||||
|         _gss_mg_error(m, *minor_status); | ||||
|  | ||||
|     m->gm_release_name(&tmp, &mn.gmn_name); | ||||
|  | ||||
| @@ -144,7 +144,7 @@ gss_duplicate_cred(OM_uint32 *minor_status, | ||||
|     HEIM_SLIST_FOREACH(mc, &cred->gc_mc, gmc_link) { | ||||
|         major_status = copy_cred_element(minor_status, mc, ©_mc); | ||||
|         if (major_status != GSS_S_COMPLETE) { | ||||
|             _gss_mg_error(mc->gmc_mech, major_status, *minor_status); | ||||
|             _gss_mg_error(mc->gmc_mech, *minor_status); | ||||
|             break; | ||||
|         } | ||||
|         HEIM_SLIST_INSERT_HEAD(&new_cred->gc_mc, copy_mc, gmc_link); | ||||
|   | ||||
| @@ -57,7 +57,7 @@ gss_export_name_composite(OM_uint32 *minor_status, | ||||
|                                                    mn->gmn_name, | ||||
|                                                    exp_composite_name); | ||||
|         if (GSS_ERROR(major_status)) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         else | ||||
|             break; | ||||
|     } | ||||
|   | ||||
| @@ -86,7 +86,7 @@ gss_export_sec_context(OM_uint32 *minor_status, | ||||
| 		memcpy(p + 2 + m->gm_mech_oid.length, buf.value, buf.length); | ||||
| 		gss_release_buffer(minor_status, &buf); | ||||
| 	} else { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 	} | ||||
|  | ||||
| 	return (major_status); | ||||
|   | ||||
| @@ -72,7 +72,7 @@ gss_get_name_attribute(OM_uint32 *minor_status, | ||||
|                                                 display_value, | ||||
|                                                 more); | ||||
|         if (GSS_ERROR(major_status)) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         else | ||||
|             break; | ||||
|     } | ||||
|   | ||||
| @@ -129,7 +129,7 @@ _gss_import_export_name(OM_uint32 *minor_status, | ||||
| 	major_status = m->gm_import_name(minor_status, | ||||
| 	    input_name_buffer, GSS_C_NT_EXPORT_NAME, &new_canonical_name); | ||||
| 	if (major_status != GSS_S_COMPLETE) { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		return major_status; | ||||
| 	} | ||||
|  | ||||
| @@ -262,7 +262,7 @@ gss_import_name(OM_uint32 *minor_status, | ||||
| 		    name->gn_type, | ||||
| 		    &mn->gmn_name); | ||||
| 		if (major_status != GSS_S_COMPLETE) { | ||||
| 			_gss_mg_error(&m->gm_mech, major_status, *minor_status); | ||||
| 			_gss_mg_error(&m->gm_mech, *minor_status); | ||||
| 			free(mn); | ||||
| 			/** | ||||
| 			 * If we failed to import the name in a mechanism, it | ||||
|   | ||||
| @@ -72,7 +72,7 @@ gss_import_sec_context(OM_uint32 *minor_status, | ||||
| 	major_status = m->gm_import_sec_context(minor_status, | ||||
| 	    &buf, &ctx->gc_ctx); | ||||
| 	if (major_status != GSS_S_COMPLETE) { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		free(ctx); | ||||
| 	} else { | ||||
| 		*context_handle = (gss_ctx_id_t) ctx; | ||||
|   | ||||
| @@ -210,7 +210,7 @@ gss_init_sec_context(OM_uint32 * minor_status, | ||||
| 		if (allocated_ctx) | ||||
| 			free(ctx); | ||||
| 		_mg_buffer_zero(output_token); | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 	} else { | ||||
| 		*context_handle = (gss_ctx_id_t) ctx; | ||||
| 	} | ||||
|   | ||||
| @@ -78,7 +78,7 @@ gss_inquire_context(OM_uint32 *minor_status, | ||||
| 	    xopen); | ||||
|  | ||||
| 	if (major_status != GSS_S_COMPLETE) { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		return (major_status); | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -73,7 +73,7 @@ gss_inquire_cred_by_mech(OM_uint32 *minor_status, | ||||
| 	major_status = m->gm_inquire_cred_by_mech(minor_status, mc, mech_type, | ||||
| 	    &mn, initiator_lifetime, acceptor_lifetime, cred_usage); | ||||
| 	if (major_status != GSS_S_COMPLETE) { | ||||
| 		_gss_mg_error(m, major_status, *minor_status); | ||||
| 		_gss_mg_error(m, *minor_status); | ||||
| 		return (major_status); | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -69,7 +69,7 @@ gss_inquire_cred_by_oid (OM_uint32 *minor_status, | ||||
| 		status = m->gm_inquire_cred_by_oid(minor_status, | ||||
| 		    mc->gmc_cred, desired_object, &rset); | ||||
| 		if (status != GSS_S_COMPLETE) { | ||||
| 			_gss_mg_error(m, status, *minor_status); | ||||
| 			_gss_mg_error(m, *minor_status); | ||||
| 			continue; | ||||
| 		} | ||||
|  | ||||
|   | ||||
| @@ -72,7 +72,7 @@ gss_inquire_name(OM_uint32 *minor_status, | ||||
|                 *MN_mech = &m->gm_mech_oid; | ||||
|             break; | ||||
|         } | ||||
|         _gss_mg_error(m, major_status, *minor_status); | ||||
|         _gss_mg_error(m, *minor_status); | ||||
|     } | ||||
|  | ||||
|     return major_status; | ||||
|   | ||||
| @@ -61,7 +61,7 @@ gss_inquire_sec_context_by_oid (OM_uint32 *minor_status, | ||||
| 		major_status = m->gm_inquire_sec_context_by_oid(minor_status, | ||||
| 		    ctx->gc_ctx, desired_object, data_set); | ||||
| 		if (major_status != GSS_S_COMPLETE) | ||||
| 			_gss_mg_error(m, major_status, *minor_status); | ||||
| 			_gss_mg_error(m, *minor_status); | ||||
| 	} else | ||||
| 		major_status = GSS_S_BAD_MECH; | ||||
|  | ||||
|   | ||||
| @@ -72,7 +72,7 @@ _gss_find_mn(OM_uint32 *minor_status, | ||||
| 		    name->gn_type, | ||||
| 		    &mn->gmn_name); | ||||
| 		if (major_status != GSS_S_COMPLETE) { | ||||
| 			_gss_mg_error(m, major_status, *minor_status); | ||||
| 			_gss_mg_error(m, *minor_status); | ||||
| 			free(mn); | ||||
| 			return major_status; | ||||
| 		} | ||||
|   | ||||
| @@ -49,7 +49,7 @@ mech_localname(OM_uint32 *minor_status, | ||||
|                                               mn->gmn_mech_oid, | ||||
|                                               localname); | ||||
|     if (GSS_ERROR(major_status)) | ||||
|         _gss_mg_error(mn->gmn_mech, major_status, *minor_status); | ||||
|         _gss_mg_error(mn->gmn_mech, *minor_status); | ||||
|  | ||||
|     return major_status; | ||||
| } | ||||
| @@ -83,7 +83,7 @@ attr_localname(OM_uint32 *minor_status, | ||||
|                                                        &display_value, | ||||
|                                                        &more); | ||||
|     if (GSS_ERROR(major_status)) { | ||||
|         _gss_mg_error(mn->gmn_mech, major_status, *minor_status); | ||||
|         _gss_mg_error(mn->gmn_mech, *minor_status); | ||||
|         return major_status; | ||||
|     } | ||||
|  | ||||
| @@ -130,7 +130,7 @@ gss_localname(OM_uint32 *minor_status, | ||||
|     } | ||||
|  | ||||
|     if (major_status != GSS_S_COMPLETE && mn != NULL) | ||||
|         _gss_mg_error(mn->gmn_mech, major_status, *minor_status); | ||||
|         _gss_mg_error(mn->gmn_mech, *minor_status); | ||||
|  | ||||
|     return major_status; | ||||
| } | ||||
|   | ||||
| @@ -64,7 +64,7 @@ gss_pseudo_random(OM_uint32 *minor_status, | ||||
| 					  prf_key, prf_in, desired_output_len, | ||||
| 					  prf_out); | ||||
|     if (major_status != GSS_S_COMPLETE) | ||||
| 	_gss_mg_error(m, major_status, *minor_status); | ||||
| 	_gss_mg_error(m, *minor_status); | ||||
|  | ||||
|     return major_status; | ||||
| } | ||||
|   | ||||
| @@ -105,7 +105,7 @@ gss_set_cred_option (OM_uint32 *minor_status, | ||||
| 			if (major_status == GSS_S_COMPLETE) | ||||
| 				one_ok = 1; | ||||
| 			else | ||||
| 				_gss_mg_error(m, major_status, *minor_status); | ||||
| 				_gss_mg_error(m, *minor_status); | ||||
|  | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -60,7 +60,7 @@ gss_set_name_attribute(OM_uint32 *minor_status, | ||||
|                                                 attr, | ||||
|                                                 value); | ||||
|         if (GSS_ERROR(major_status)) | ||||
|             _gss_mg_error(m, major_status, *minor_status); | ||||
|             _gss_mg_error(m, *minor_status); | ||||
|         else | ||||
|             break; | ||||
|     } | ||||
|   | ||||
| @@ -61,7 +61,7 @@ gss_set_sec_context_option (OM_uint32 *minor_status, | ||||
| 		major_status = m->gm_set_sec_context_option(minor_status, | ||||
| 		    &ctx->gc_ctx, object, value); | ||||
| 		if (major_status != GSS_S_COMPLETE) | ||||
| 			_gss_mg_error(m, major_status, *minor_status); | ||||
| 			_gss_mg_error(m, *minor_status); | ||||
| 	} else | ||||
| 		major_status = GSS_S_BAD_MECH; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user