summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/krb5
diff options
context:
space:
mode:
authorLuke Howard <lukeh@padl.com>2012-08-29 09:47:24 +1000
committerGreg Hudson <ghudson@mit.edu>2012-08-31 12:03:49 -0400
commit8626fe9fb6cb14e92b84a68fca5209d0ee656f74 (patch)
tree3ee89b0c1713b7904366ba86b3e2aa6ff3765794 /src/lib/gssapi/krb5
parent79b78773ee4e9219185c71907256a92e06ec5b57 (diff)
downloadkrb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.tar.gz
krb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.tar.xz
krb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.zip
Add support for GSS_C_NT_COMPOSITE_EXPORT
ticket: 7347 (new)
Diffstat (limited to 'src/lib/gssapi/krb5')
-rw-r--r--src/lib/gssapi/krb5/import_name.c5
-rw-r--r--src/lib/gssapi/krb5/inq_names.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/gssapi/krb5/import_name.c b/src/lib/gssapi/krb5/import_name.c
index 0e730f98e2..ebc2a7bbea 100644
--- a/src/lib/gssapi/krb5/import_name.c
+++ b/src/lib/gssapi/krb5/import_name.c
@@ -218,7 +218,8 @@ krb5_gss_import_name(minor_status, input_name_buffer,
uid = atoi(tmp);
goto do_getpwuid;
#endif
- } else if (g_OID_equal(input_name_type, gss_nt_exported_name)) {
+ } else if (g_OID_equal(input_name_type, gss_nt_exported_name) ||
+ g_OID_equal(input_name_type, GSS_C_NT_COMPOSITE_EXPORT)) {
#define BOUNDS_CHECK(cp, end, n) \
do { if ((end) - (cp) < (n)) goto fail_name; } while (0)
cp = (unsigned char *)tmp;
@@ -231,7 +232,7 @@ krb5_gss_import_name(minor_status, input_name_buffer,
case 0x01:
break;
case 0x02:
- has_ad++;
+ has_ad++; /* is composite name */
break;
default:
goto fail_name;
diff --git a/src/lib/gssapi/krb5/inq_names.c b/src/lib/gssapi/krb5/inq_names.c
index 9cc43500f4..fcf7dbcd3a 100644
--- a/src/lib/gssapi/krb5/inq_names.c
+++ b/src/lib/gssapi/krb5/inq_names.c
@@ -77,6 +77,10 @@ krb5_gss_inquire_names_for_mech(minor_status, mechanism, name_types)
((major = generic_gss_add_oid_set_member(minor_status,
gss_nt_krb5_name,
name_types)
+ ) == GSS_S_COMPLETE) &&
+ ((major = generic_gss_add_oid_set_member(minor_status,
+ GSS_C_NT_COMPOSITE_EXPORT,
+ name_types)
) == GSS_S_COMPLETE)
) {
major = generic_gss_add_oid_set_member(minor_status,