Allow composite names in gss_import_name()
This commit is contained in:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user