Return-Path: Received: from pch.mit.edu (PCH.MIT.EDU [18.7.21.90]) by krbdev.mit.edu (Postfix) with ESMTP id 68D3ACCA06; Wed, 23 Dec 2009 02:29:30 +0000 (UTC) Received: from pch.mit.edu (pch.mit.edu [127.0.0.1]) by pch.mit.edu (8.13.6/8.12.8) with ESMTP id nBN2TUDx017137; Tue, 22 Dec 2009 21:29:30 -0500 Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.7.21.83]) by pch.mit.edu (8.13.6/8.12.8) with ESMTP id nBN0EwWp031657 for ; Tue, 22 Dec 2009 19:14:58 -0500 Received: from dmz-mailsec-scanner-3.mit.edu (DMZ-MAILSEC-SCANNER-3.MIT.EDU [18.9.25.14]) by pacific-carrier-annex.mit.edu (8.13.6/8.9.2) with ESMTP id nBN0BLDH004626 for ; Tue, 22 Dec 2009 19:15:20 -0500 (EST) X-Auditid: 1209190e-b7b50ae000006a07-e6-4b3160eedbf6 Received: from outbound.mse3.exchange.ms (outbound.mse3.exchange.ms [69.25.50.242]) by (Symantec Brightmail Gateway) with SMTP id 01.3A.27143.EE0613B4; Tue, 22 Dec 2009 19:14:38 -0500 (EST) X-Mimeole: Produced By Microsoft Exchange V6.5 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Subject: gsssspi_set_cred_option cannot handle mech specific option Date: Tue, 22 Dec 2009 19:14:31 -0500 Message-ID: <23447137FA0DAA4D95EF535FF356BE4603B75819@mse3be2.mse3.exchange.ms> X-MS-Has-Attach: X-MS-Tnef-Correlator: Thread-Topic: gsssspi_set_cred_option cannot handle mech specific option Thread-Index: AcqDZOZHlclnnWhdRHKXyGjtXLaY+w== From: "Arlene Berry" To: X-Brightmail-Tracker: AAAAAA== X-Spam-Score: 0 X-Spam-Flag: NO X-Scanned-BY: MIMEDefang 2.42 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by pch.mit.edu id nBN0EwWp031657 X-Mailman-Approved-At: Tue, 22 Dec 2009 21:29:28 -0500 X-Beenthere: krb5-bugs-incoming@mailman.mit.edu X-Mailman-Version: 2.1.6 Precedence: list Sender: krb5-bugs-incoming-bounces@PCH.mit.edu Errors-To: krb5-bugs-incoming-bounces@PCH.mit.edu X-RT-Original-Encoding: us-ascii Content-Length: 1321 The current options are specific to the kerberos mechanism. Options are likely to be implemented by only one mechanism but the mechglue layer assumes that all mechanisms have implemented each option and will succeed when asked to set them. This fixes that: Index: src/lib/gssapi/mechglue/g_set_cred_option.c =================================================================== --- src/lib/gssapi/mechglue/g_set_cred_option.c (revision 23482) +++ src/lib/gssapi/mechglue/g_set_cred_option.c (working copy) @@ -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;