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