freerdp: make modifications to NLA server-side fixes according to PR comments
This commit is contained in:
parent
801dc0f826
commit
14cb6d33c6
@ -1747,8 +1747,17 @@ rdpNla* nla_new(freerdp* instance, rdpTransport* transport, rdpSettings* setting
|
|||||||
nla->version = 3;
|
nla->version = 3;
|
||||||
|
|
||||||
if (settings->NtlmSamFile)
|
if (settings->NtlmSamFile)
|
||||||
|
{
|
||||||
nla->SamFile = _strdup(settings->NtlmSamFile);
|
nla->SamFile = _strdup(settings->NtlmSamFile);
|
||||||
|
|
||||||
|
if (!nla->SamFile)
|
||||||
|
{
|
||||||
|
free(nla->identity);
|
||||||
|
free(nla);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ZeroMemory(&nla->negoToken, sizeof(SecBuffer));
|
ZeroMemory(&nla->negoToken, sizeof(SecBuffer));
|
||||||
ZeroMemory(&nla->pubKeyAuth, sizeof(SecBuffer));
|
ZeroMemory(&nla->pubKeyAuth, sizeof(SecBuffer));
|
||||||
ZeroMemory(&nla->authInfo, sizeof(SecBuffer));
|
ZeroMemory(&nla->authInfo, sizeof(SecBuffer));
|
||||||
@ -1815,11 +1824,8 @@ void nla_free(rdpNla* nla)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nla->SamFile)
|
free(nla->SamFile);
|
||||||
{
|
nla->SamFile = NULL;
|
||||||
free(nla->SamFile);
|
|
||||||
nla->SamFile = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
sspi_SecBufferFree(&nla->PublicKey);
|
sspi_SecBufferFree(&nla->PublicKey);
|
||||||
sspi_SecBufferFree(&nla->tsCredentials);
|
sspi_SecBufferFree(&nla->tsCredentials);
|
||||||
|
@ -408,6 +408,9 @@ BOOL shadow_client_logon(freerdp_peer* peer, SEC_WINNT_AUTH_IDENTITY* identity,
|
|||||||
password = _strdup((char*) identity->Password);
|
password = _strdup((char*) identity->Password);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((identity->User && !user) || (identity->Domain && !domain) || (identity->Password && !password))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if (user)
|
if (user)
|
||||||
{
|
{
|
||||||
free(settings->Username);
|
free(settings->Username);
|
||||||
@ -419,7 +422,7 @@ BOOL shadow_client_logon(freerdp_peer* peer, SEC_WINNT_AUTH_IDENTITY* identity,
|
|||||||
{
|
{
|
||||||
free(settings->Domain);
|
free(settings->Domain);
|
||||||
settings->Domain = domain;
|
settings->Domain = domain;
|
||||||
user = NULL;
|
domain = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password)
|
if (password)
|
||||||
|
@ -784,17 +784,11 @@ void shadow_server_free(rdpShadowServer* server)
|
|||||||
if (!server)
|
if (!server)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (server->ipcSocket)
|
free(server->ipcSocket);
|
||||||
{
|
server->ipcSocket = NULL;
|
||||||
free(server->ipcSocket);
|
|
||||||
server->ipcSocket = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (server->settings)
|
freerdp_settings_free(server->settings);
|
||||||
{
|
server->settings = NULL;
|
||||||
freerdp_settings_free(server->settings);
|
|
||||||
server->settings = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
free(server);
|
free(server);
|
||||||
}
|
}
|
||||||
|
@ -810,7 +810,15 @@ SECURITY_STATUS SEC_ENTRY ntlm_SetContextAttributesW(PCtxtHandle phContext, ULON
|
|||||||
const char* filename = (char*) pBuffer;
|
const char* filename = (char*) pBuffer;
|
||||||
|
|
||||||
free(context->SamFile);
|
free(context->SamFile);
|
||||||
context->SamFile = filename ? _strdup(filename) : NULL;
|
context->SamFile = NULL;
|
||||||
|
|
||||||
|
if (filename)
|
||||||
|
{
|
||||||
|
context->SamFile = _strdup(filename);
|
||||||
|
|
||||||
|
if (!context->SamFile)
|
||||||
|
return SEC_E_INSUFFICIENT_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
return SEC_E_OK;
|
return SEC_E_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user