Allow composite names in gss_import_name()

This commit is contained in:
Luke Howard
2011-05-12 13:39:19 +02:00
parent 3287820448
commit 766b7a558c

View File

@@ -41,6 +41,7 @@ _gss_import_export_name(OM_uint32 *minor_status,
gssapi_mech_interface m; gssapi_mech_interface m;
struct _gss_name *name; struct _gss_name *name;
gss_name_t new_canonical_name; gss_name_t new_canonical_name;
int composite = 0;
*minor_status = 0; *minor_status = 0;
*output_name = 0; *output_name = 0;
@@ -50,8 +51,17 @@ _gss_import_export_name(OM_uint32 *minor_status,
*/ */
if (len < 2) if (len < 2)
return (GSS_S_BAD_NAME); return (GSS_S_BAD_NAME);
if (p[0] != 4 || p[1] != 1) if (p[0] != 4)
return (GSS_S_BAD_NAME); return (GSS_S_BAD_NAME);
switch (p[1]) {
case 1: /* non-composite name */
break;
case 2: /* composite name */
composite = 1;
break;
default:
return (GSS_S_BAD_NAME);
}
p += 2; p += 2;
len -= 2; len -= 2;
@@ -106,7 +116,7 @@ _gss_import_export_name(OM_uint32 *minor_status,
p += 4; p += 4;
len -= 4; len -= 4;
if (len != t) if (!composite && len != t)
return (GSS_S_BAD_NAME); return (GSS_S_BAD_NAME);
m = __gss_get_mechanism(&mech_oid); m = __gss_get_mechanism(&mech_oid);