handle username part of the ntlm name
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22373 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -65,6 +65,7 @@ OM_uint32 _gss_ntlm_import_name
|
||||
p = strchr(name, '@');
|
||||
if (p == NULL)
|
||||
return GSS_S_BAD_NAME;
|
||||
p[0] = '\0';
|
||||
p++;
|
||||
p2 = strchr(p, '.');
|
||||
if (p2 && p2[1] != '\0') {
|
||||
@@ -75,15 +76,26 @@ OM_uint32 _gss_ntlm_import_name
|
||||
}
|
||||
strupr(p);
|
||||
|
||||
n = malloc(sizeof(n) + strlen(p));
|
||||
if (n == NULL) {
|
||||
n = calloc(1, sizeof(*n));
|
||||
if (name == NULL) {
|
||||
free(name);
|
||||
*minor_status = ENOMEM;
|
||||
return GSS_S_FAILURE;
|
||||
}
|
||||
strcpy(n->domain, p);
|
||||
|
||||
n->user = strdup(name);
|
||||
n->domain = strdup(p);
|
||||
|
||||
free(name);
|
||||
|
||||
if (n->user == NULL || n->domain == NULL) {
|
||||
free(n->user);
|
||||
free(n->domain);
|
||||
free(n);
|
||||
*minor_status = ENOMEM;
|
||||
return GSS_S_FAILURE;
|
||||
}
|
||||
|
||||
*output_name = (gss_name_t)n;
|
||||
|
||||
return GSS_S_COMPLETE;
|
||||
|
Reference in New Issue
Block a user