From e9b3b2326d93efbfe83c4f6175fc5ade5e18a750 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Thu, 3 Jan 2019 18:15:34 +1100 Subject: [PATCH] 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. --- lib/gssapi/mech/context.c | 108 +++++++++--------- lib/gssapi/mech/context.h | 4 +- lib/gssapi/mech/gss_accept_sec_context.c | 2 +- lib/gssapi/mech/gss_acquire_cred_from.c | 2 +- lib/gssapi/mech/gss_add_cred_from.c | 4 +- lib/gssapi/mech/gss_canonicalize_name.c | 2 +- lib/gssapi/mech/gss_delete_name_attribute.c | 2 +- lib/gssapi/mech/gss_display_name_ext.c | 2 +- lib/gssapi/mech/gss_display_status.c | 17 ++- lib/gssapi/mech/gss_duplicate_cred.c | 6 +- lib/gssapi/mech/gss_export_name_composite.c | 2 +- lib/gssapi/mech/gss_export_sec_context.c | 2 +- lib/gssapi/mech/gss_get_name_attribute.c | 2 +- lib/gssapi/mech/gss_import_name.c | 4 +- lib/gssapi/mech/gss_import_sec_context.c | 2 +- lib/gssapi/mech/gss_init_sec_context.c | 2 +- lib/gssapi/mech/gss_inquire_context.c | 2 +- lib/gssapi/mech/gss_inquire_cred_by_mech.c | 2 +- lib/gssapi/mech/gss_inquire_cred_by_oid.c | 2 +- lib/gssapi/mech/gss_inquire_name.c | 2 +- .../mech/gss_inquire_sec_context_by_oid.c | 2 +- lib/gssapi/mech/gss_names.c | 2 +- lib/gssapi/mech/gss_pname_to_uid.c | 6 +- lib/gssapi/mech/gss_pseudo_random.c | 2 +- lib/gssapi/mech/gss_set_cred_option.c | 2 +- lib/gssapi/mech/gss_set_name_attribute.c | 2 +- lib/gssapi/mech/gss_set_sec_context_option.c | 2 +- 27 files changed, 95 insertions(+), 94 deletions(-) diff --git a/lib/gssapi/mech/context.c b/lib/gssapi/mech/context.c index 5ea0ac466..f03534b86 100644 --- a/lib/gssapi/mech/context.c +++ b/lib/gssapi/mech/context.c @@ -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 +#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); } diff --git a/lib/gssapi/mech/context.h b/lib/gssapi/mech/context.h index f2a7009cd..4cae4b205 100644 --- a/lib/gssapi/mech/context.h +++ b/lib/gssapi/mech/context.h @@ -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); diff --git a/lib/gssapi/mech/gss_accept_sec_context.c b/lib/gssapi/mech/gss_accept_sec_context.c index d7dc8a06f..4e970223a 100644 --- a/lib/gssapi/mech/gss_accept_sec_context.c +++ b/lib/gssapi/mech/gss_accept_sec_context.c @@ -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); } diff --git a/lib/gssapi/mech/gss_acquire_cred_from.c b/lib/gssapi/mech/gss_acquire_cred_from.c index 5436dfa37..51438e938 100644 --- a/lib/gssapi/mech/gss_acquire_cred_from.c +++ b/lib/gssapi/mech/gss_acquire_cred_from.c @@ -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; } diff --git a/lib/gssapi/mech/gss_add_cred_from.c b/lib/gssapi/mech/gss_add_cred_from.c index 31862c8d4..be536d524 100644 --- a/lib/gssapi/mech/gss_add_cred_from.c +++ b/lib/gssapi/mech/gss_add_cred_from.c @@ -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); diff --git a/lib/gssapi/mech/gss_canonicalize_name.c b/lib/gssapi/mech/gss_canonicalize_name.c index f1ff7660b..419229229 100644 --- a/lib/gssapi/mech/gss_canonicalize_name.c +++ b/lib/gssapi/mech/gss_canonicalize_name.c @@ -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); } diff --git a/lib/gssapi/mech/gss_delete_name_attribute.c b/lib/gssapi/mech/gss_delete_name_attribute.c index cb35dd0eb..ce2dbdefc 100644 --- a/lib/gssapi/mech/gss_delete_name_attribute.c +++ b/lib/gssapi/mech/gss_delete_name_attribute.c @@ -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; } diff --git a/lib/gssapi/mech/gss_display_name_ext.c b/lib/gssapi/mech/gss_display_name_ext.c index 6c0e5f332..91d16152f 100644 --- a/lib/gssapi/mech/gss_display_name_ext.c +++ b/lib/gssapi/mech/gss_display_name_ext.c @@ -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; } diff --git a/lib/gssapi/mech/gss_display_status.c b/lib/gssapi/mech/gss_display_status.c index a79ef350d..7b3afafff 100644 --- a/lib/gssapi/mech/gss_display_status.c +++ b/lib/gssapi/mech/gss_display_status.c @@ -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"); diff --git a/lib/gssapi/mech/gss_duplicate_cred.c b/lib/gssapi/mech/gss_duplicate_cred.c index 6534454b5..403e2b065 100644 --- a/lib/gssapi/mech/gss_duplicate_cred.c +++ b/lib/gssapi/mech/gss_duplicate_cred.c @@ -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); diff --git a/lib/gssapi/mech/gss_export_name_composite.c b/lib/gssapi/mech/gss_export_name_composite.c index 530a905aa..922055204 100644 --- a/lib/gssapi/mech/gss_export_name_composite.c +++ b/lib/gssapi/mech/gss_export_name_composite.c @@ -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; } diff --git a/lib/gssapi/mech/gss_export_sec_context.c b/lib/gssapi/mech/gss_export_sec_context.c index 1718ceb79..ba90b0c6b 100644 --- a/lib/gssapi/mech/gss_export_sec_context.c +++ b/lib/gssapi/mech/gss_export_sec_context.c @@ -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); diff --git a/lib/gssapi/mech/gss_get_name_attribute.c b/lib/gssapi/mech/gss_get_name_attribute.c index 450bbac46..f2b14fede 100644 --- a/lib/gssapi/mech/gss_get_name_attribute.c +++ b/lib/gssapi/mech/gss_get_name_attribute.c @@ -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; } diff --git a/lib/gssapi/mech/gss_import_name.c b/lib/gssapi/mech/gss_import_name.c index 4d868ec3f..438a1144b 100644 --- a/lib/gssapi/mech/gss_import_name.c +++ b/lib/gssapi/mech/gss_import_name.c @@ -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 diff --git a/lib/gssapi/mech/gss_import_sec_context.c b/lib/gssapi/mech/gss_import_sec_context.c index 9865db78d..63c7700c5 100644 --- a/lib/gssapi/mech/gss_import_sec_context.c +++ b/lib/gssapi/mech/gss_import_sec_context.c @@ -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; diff --git a/lib/gssapi/mech/gss_init_sec_context.c b/lib/gssapi/mech/gss_init_sec_context.c index cbf36f6d5..3f2bba288 100644 --- a/lib/gssapi/mech/gss_init_sec_context.c +++ b/lib/gssapi/mech/gss_init_sec_context.c @@ -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; } diff --git a/lib/gssapi/mech/gss_inquire_context.c b/lib/gssapi/mech/gss_inquire_context.c index e2a8e66f3..e7466a461 100644 --- a/lib/gssapi/mech/gss_inquire_context.c +++ b/lib/gssapi/mech/gss_inquire_context.c @@ -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); } diff --git a/lib/gssapi/mech/gss_inquire_cred_by_mech.c b/lib/gssapi/mech/gss_inquire_cred_by_mech.c index 3a277eed4..c64053c9e 100644 --- a/lib/gssapi/mech/gss_inquire_cred_by_mech.c +++ b/lib/gssapi/mech/gss_inquire_cred_by_mech.c @@ -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); } diff --git a/lib/gssapi/mech/gss_inquire_cred_by_oid.c b/lib/gssapi/mech/gss_inquire_cred_by_oid.c index 91166139d..8e2909ac3 100644 --- a/lib/gssapi/mech/gss_inquire_cred_by_oid.c +++ b/lib/gssapi/mech/gss_inquire_cred_by_oid.c @@ -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; } diff --git a/lib/gssapi/mech/gss_inquire_name.c b/lib/gssapi/mech/gss_inquire_name.c index 10acaaae1..4f985537e 100644 --- a/lib/gssapi/mech/gss_inquire_name.c +++ b/lib/gssapi/mech/gss_inquire_name.c @@ -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; diff --git a/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c b/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c index ac45265b3..55ff67169 100644 --- a/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c +++ b/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c @@ -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; diff --git a/lib/gssapi/mech/gss_names.c b/lib/gssapi/mech/gss_names.c index 20c3918ed..98bb230a7 100644 --- a/lib/gssapi/mech/gss_names.c +++ b/lib/gssapi/mech/gss_names.c @@ -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; } diff --git a/lib/gssapi/mech/gss_pname_to_uid.c b/lib/gssapi/mech/gss_pname_to_uid.c index 315f0e0d8..a7b73f5ec 100644 --- a/lib/gssapi/mech/gss_pname_to_uid.c +++ b/lib/gssapi/mech/gss_pname_to_uid.c @@ -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; } diff --git a/lib/gssapi/mech/gss_pseudo_random.c b/lib/gssapi/mech/gss_pseudo_random.c index ce4f9a413..1b7eb7e44 100644 --- a/lib/gssapi/mech/gss_pseudo_random.c +++ b/lib/gssapi/mech/gss_pseudo_random.c @@ -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; } diff --git a/lib/gssapi/mech/gss_set_cred_option.c b/lib/gssapi/mech/gss_set_cred_option.c index e4e3a177e..3a8427a06 100644 --- a/lib/gssapi/mech/gss_set_cred_option.c +++ b/lib/gssapi/mech/gss_set_cred_option.c @@ -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); } } diff --git a/lib/gssapi/mech/gss_set_name_attribute.c b/lib/gssapi/mech/gss_set_name_attribute.c index ada7a0612..2bbe18274 100644 --- a/lib/gssapi/mech/gss_set_name_attribute.c +++ b/lib/gssapi/mech/gss_set_name_attribute.c @@ -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; } diff --git a/lib/gssapi/mech/gss_set_sec_context_option.c b/lib/gssapi/mech/gss_set_sec_context_option.c index 6efe1a0b1..222715021 100644 --- a/lib/gssapi/mech/gss_set_sec_context_option.c +++ b/lib/gssapi/mech/gss_set_sec_context_option.c @@ -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;