gss_display_status() bug dealing with minor/mech specific error codes?
Will Fiveash
will.fiveash at oracle.com
Tue Apr 23 20:11:09 EDT 2013
On Tue, Apr 23, 2013 at 05:51:43PM -0500, Will Fiveash wrote:
>
> gssint_mecherrmap_get() is passing the global variable m, defined in
> src/lib/gssapi/generic/util_errmap.c, to mecherrmap_findleft() but I
> don't believe it has been initialized. AFAICT, m is initialized by
> gssint_mecherrmap_init() yet I don't see that call in the truss output.
> Thoughts?
I'll also add that when I remove:
{
int err;
OM_uint32 m_status = 0, status;
err = gssint_mecherrmap_get(status_value, &m_oid, &m_status);
if (err) {
*minor_status = err;
map_errcode(minor_status);
return GSS_S_BAD_STATUS;
}
if (m_oid.length == 0) {
/* Magic flag for com_err values. */
status = g_display_com_err_status(minor_status, m_status, status_string);
if (status != GSS_S_COMPLETE)
map_errcode(minor_status);
return status;
}
mech_type = &m_oid;
status_value = m_status;
}
from gss_display_status() then I see:
Minor status (krb mech): Credentials cache file permissions incorrect
when I run the test program.
--
Will Fiveash
Oracle Solaris Software Engineer
More information about the krbdev
mailing list