diff options
author | Sam Hartman <hartmans@debian.org> | 2014-06-04 12:06:27 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2014-06-05 12:13:18 -0400 |
commit | 41d38531043b99e8daa334f2b6ddf376adf1e878 (patch) | |
tree | 0ab30eaef385275e13387d5ef370df72b10e7861 | |
parent | fb5cd8df0dbd04dac4f610e68cba5b80a3cb8d48 (diff) | |
download | krb5-41d38531043b99e8daa334f2b6ddf376adf1e878.tar.gz krb5-41d38531043b99e8daa334f2b6ddf376adf1e878.tar.xz krb5-41d38531043b99e8daa334f2b6ddf376adf1e878.zip |
Do not loop on add_cred_from and other new methods
Several new GSS-API methods were added but GSSAPI_ADD_METHOD was
called to add them rather than GSSAPI_ADD_METHOD_NOLOOP. This means
that the implementation from the GSS-API mechglue would be used if the
mechanism had no implementation. As a result, the mechglue will call
into itself exhausting the call stack in an endless loop when one of
these methods is called.
ticket: 7926
target_version: 1.12.2
tags: pullup
-rw-r--r-- | src/lib/gssapi/mechglue/g_initialize.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/gssapi/mechglue/g_initialize.c b/src/lib/gssapi/mechglue/g_initialize.c index 8bce14cba..b0eb40a57 100644 --- a/src/lib/gssapi/mechglue/g_initialize.c +++ b/src/lib/gssapi/mechglue/g_initialize.c @@ -703,11 +703,11 @@ build_dynamicMech(void *dl, const gss_OID mech_type) GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_inquire_mech_for_saslname); /* RFC 5587 */ GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_inquire_attrs_for_mech); - GSS_ADD_DYNAMIC_METHOD(dl, mech, gss_acquire_cred_from); - GSS_ADD_DYNAMIC_METHOD(dl, mech, gss_store_cred_into); + GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_acquire_cred_from); + GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_store_cred_into); GSS_ADD_DYNAMIC_METHOD(dl, mech, gssspi_acquire_cred_with_password); - GSS_ADD_DYNAMIC_METHOD(dl, mech, gss_export_cred); - GSS_ADD_DYNAMIC_METHOD(dl, mech, gss_import_cred); + GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_export_cred); + GSS_ADD_DYNAMIC_METHOD_NOLOOP(dl, mech, gss_import_cred); GSS_ADD_DYNAMIC_METHOD(dl, mech, gssspi_import_sec_context_by_mech); GSS_ADD_DYNAMIC_METHOD(dl, mech, gssspi_import_name_by_mech); GSS_ADD_DYNAMIC_METHOD(dl, mech, gssspi_import_cred_by_mech); |