Skip to content

Commit 40c1a31

Browse files
committed
Allow for token logon even with INFO_AUTOLOGON flag set
1 parent c8cd758 commit 40c1a31

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

libxrdp/xrdp_sec.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -600,17 +600,6 @@ xrdp_sec_process_logon_info(struct xrdp_sec *self, struct stream *s)
600600
return 1;
601601
}
602602
}
603-
else if (self->rdp_layer->client_info.enable_token_login
604-
&& len_user > 0
605-
&& len_password == 0
606-
&& (sep = g_strchr(self->rdp_layer->client_info.username, '\x1f')) != NULL)
607-
{
608-
LOG(LOG_LEVEL_DEBUG, "Client supplied a Logon token. Overwriting password with logon token.");
609-
g_strncpy(self->rdp_layer->client_info.password, sep + 1,
610-
sizeof(self->rdp_layer->client_info.password) - 1);
611-
self->rdp_layer->client_info.username[sep - self->rdp_layer->client_info.username] = '\0';
612-
self->rdp_layer->client_info.rdp_autologin = 1;
613-
}
614603
else
615604
{
616605
// Skip the password
@@ -620,6 +609,17 @@ xrdp_sec_process_logon_info(struct xrdp_sec *self, struct stream *s)
620609
}
621610
in_uint8s(s, len_password + 2);
622611
}
612+
if (self->rdp_layer->client_info.enable_token_login
613+
&& len_user > 0
614+
&& len_password == 0
615+
&& (sep = g_strchr(self->rdp_layer->client_info.username, '\x1f')) != NULL)
616+
{
617+
LOG(LOG_LEVEL_DEBUG, "Client supplied a Logon token. Overwriting password with logon token.");
618+
g_strncpy(self->rdp_layer->client_info.password, sep + 1,
619+
sizeof(self->rdp_layer->client_info.password) - 1);
620+
self->rdp_layer->client_info.username[sep - self->rdp_layer->client_info.username] = '\0';
621+
self->rdp_layer->client_info.rdp_autologin = 1;
622+
}
623623
if (self->rdp_layer->client_info.domain_user_separator[0] != '\0'
624624
&& self->rdp_layer->client_info.domain[0] != '\0')
625625
{

0 commit comments

Comments
 (0)