support NT_USER_NAME for real
This commit is contained in:
@@ -42,6 +42,8 @@ _gss_ntlm_import_name
|
||||
)
|
||||
{
|
||||
char *name, *p, *p2;
|
||||
int is_hostnamed;
|
||||
int is_username;
|
||||
ntlm_name n;
|
||||
|
||||
*minor_status = 0;
|
||||
@@ -51,8 +53,10 @@ _gss_ntlm_import_name
|
||||
|
||||
*output_name = GSS_C_NO_NAME;
|
||||
|
||||
if (!gss_oid_equal(input_name_type, GSS_C_NT_HOSTBASED_SERVICE)
|
||||
&& !gss_oid_equal(input_name_type, GSS_C_NT_USER_NAME))
|
||||
is_hostnamed = gss_oid_equal(input_name_type, GSS_C_NT_HOSTBASED_SERVICE);
|
||||
is_username = gss_oid_equal(input_name_type, GSS_C_NT_USER_NAME);
|
||||
|
||||
if (!is_hostnamed && !is_username)
|
||||
return GSS_S_BAD_NAMETYPE;
|
||||
|
||||
name = malloc(input_name_buffer->length + 1);
|
||||
@@ -73,8 +77,10 @@ _gss_ntlm_import_name
|
||||
p++;
|
||||
p2 = strchr(p, '.');
|
||||
if (p2 && p2[1] != '\0') {
|
||||
p = p2 + 1;
|
||||
p2 = strchr(p, '.');
|
||||
if (is_hostnamed) {
|
||||
p = p2 + 1;
|
||||
p2 = strchr(p, '.');
|
||||
}
|
||||
if (p2)
|
||||
*p2 = '\0';
|
||||
}
|
||||
|
Reference in New Issue
Block a user