libwinpr-sspi: reduce usage of memory utils
This commit is contained in:
parent
813cf27ccd
commit
3266888ae5
@ -157,12 +157,12 @@ int get_krb_realm(rdpSettings* settings)
|
||||
goto end;
|
||||
else
|
||||
settings->kerberos_realm = xstrdup(ns_realm);
|
||||
xfree(queryname);
|
||||
free(queryname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
end:
|
||||
xfree(queryname);
|
||||
free(queryname);
|
||||
for (;*s != '.' && *s != '\0';s++);
|
||||
if (*s != '\0')
|
||||
s++;
|
||||
@ -268,7 +268,7 @@ KRB_CONTEXT* kerberos_ContextNew()
|
||||
{
|
||||
KRB_CONTEXT* context;
|
||||
|
||||
context = xnew(KRB_CONTEXT);
|
||||
context = (KRB_CONTEXT*) calloc(1, sizeof(KRB_CONTEXT));
|
||||
|
||||
if (context != NULL)
|
||||
{
|
||||
@ -284,21 +284,21 @@ void kerberos_ContextFree(KRB_CONTEXT* krb_ctx)
|
||||
{
|
||||
if (krb_ctx != NULL)
|
||||
{
|
||||
xfree(krb_ctx->krbhost);
|
||||
xfree(krb_ctx->cname);
|
||||
xfree(krb_ctx->realm);
|
||||
free(krb_ctx->krbhost);
|
||||
free(krb_ctx->cname);
|
||||
free(krb_ctx->realm);
|
||||
freerdp_blob_free(&(krb_ctx->passwd));
|
||||
|
||||
if(krb_ctx->askey != NULL)
|
||||
if (krb_ctx->askey != NULL)
|
||||
{
|
||||
freerdp_blob_free(&(krb_ctx->askey->skey));
|
||||
xfree(krb_ctx->askey);
|
||||
free(krb_ctx->askey);
|
||||
}
|
||||
|
||||
if(krb_ctx->tgskey != NULL)
|
||||
if (krb_ctx->tgskey != NULL)
|
||||
{
|
||||
freerdp_blob_free(&(krb_ctx->tgskey->skey));
|
||||
xfree(krb_ctx->tgskey);
|
||||
free(krb_ctx->tgskey);
|
||||
}
|
||||
|
||||
krb_free_ticket(&(krb_ctx->asticket));
|
||||
@ -410,7 +410,7 @@ void krb_SetContextIdentity(KRB_CONTEXT* context, SEC_WINNT_AUTH_IDENTITY* ident
|
||||
|
||||
if (identity->DomainLength > 0)
|
||||
{
|
||||
context->identity.Domain = (uint16*) xmalloc(identity->DomainLength);
|
||||
context->identity.Domain = (uint16*) malloc(identity->DomainLength);
|
||||
memcpy(context->identity.Domain, identity->Domain, identity->DomainLength);
|
||||
}
|
||||
else
|
||||
@ -510,7 +510,7 @@ PCtxtHandle krbctx_client_init(rdpSettings* settings, SEC_WINNT_AUTH_IDENTITY* i
|
||||
|
||||
if (entry == NULL)
|
||||
{
|
||||
xfree(krb_ctx);
|
||||
free(krb_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -601,7 +601,7 @@ void krb_asreq_send(KRB_CONTEXT* krb_ctx, uint8 errcode)
|
||||
(*(pa_data + pai))->value = msg;
|
||||
pai++;
|
||||
freerdp_blob_free(encmsg);
|
||||
xfree(encmsg);
|
||||
free(encmsg);
|
||||
}
|
||||
|
||||
freerdp_blob_alloc(&msg, 7);
|
||||
@ -634,7 +634,7 @@ void krb_asreq_send(KRB_CONTEXT* krb_ctx, uint8 errcode)
|
||||
/* save stuff */
|
||||
krb_ctx->askey = enckey;
|
||||
krb_ctx->nonce = krb_asreq->req_body.nonce;
|
||||
xfree(krb_ctx->sname);
|
||||
free(krb_ctx->sname);
|
||||
krb_ctx->sname = xstrdup(krb_asreq->req_body.sname);
|
||||
krb_ctx->ctime = get_local_time(krb_asreq->req_body.from);
|
||||
krb_ctx->state = KRB_ASREQ_OK;
|
||||
@ -644,7 +644,7 @@ void krb_asreq_send(KRB_CONTEXT* krb_ctx, uint8 errcode)
|
||||
stream_free(s);
|
||||
stream_free(paenc);
|
||||
krb_free_asreq(krb_asreq);
|
||||
xfree(krb_asreq);
|
||||
free(krb_asreq);
|
||||
}
|
||||
|
||||
int krb_asrep_recv(KRB_CONTEXT* krb_ctx)
|
||||
@ -678,7 +678,7 @@ int krb_asrep_recv(KRB_CONTEXT* krb_ctx)
|
||||
if((totlen <= 0) || ((len = krb_decode_krb_error(s, krb_err, totlen)) == 0))
|
||||
{
|
||||
krb_ctx->state = KRB_PACKET_ERROR;
|
||||
xfree(krb_err);
|
||||
free(krb_err);
|
||||
goto finish;
|
||||
}
|
||||
|
||||
@ -708,7 +708,7 @@ int krb_asrep_recv(KRB_CONTEXT* krb_ctx)
|
||||
}
|
||||
errclean:
|
||||
krb_free_krb_error(krb_err);
|
||||
xfree(krb_err);
|
||||
free(krb_err);
|
||||
goto finish;
|
||||
}
|
||||
}
|
||||
@ -731,7 +731,7 @@ int krb_asrep_recv(KRB_CONTEXT* krb_ctx)
|
||||
|
||||
/* clean up */
|
||||
krb_free_asrep(krb_asrep);
|
||||
xfree(krb_asrep);
|
||||
free(krb_asrep);
|
||||
goto finish;
|
||||
}
|
||||
finish:
|
||||
@ -808,17 +808,17 @@ void krb_tgsreq_send(KRB_CONTEXT* krb_ctx, uint8 errcode)
|
||||
|
||||
/* save stuff */
|
||||
krb_ctx->nonce = krb_tgsreq->req_body.nonce;
|
||||
xfree(krb_ctx->sname);
|
||||
free(krb_ctx->sname);
|
||||
krb_ctx->sname = xstrdup(krb_tgsreq->req_body.sname);
|
||||
krb_ctx->ctime = get_local_time(krb_tgsreq->req_body.from);
|
||||
krb_ctx->state = KRB_TGSREQ_OK;
|
||||
|
||||
/* clean up */
|
||||
freerdp_blob_free(krb_auth->cksum);
|
||||
xfree(krb_auth->cksum);
|
||||
xfree(krb_auth);
|
||||
free(krb_auth->cksum);
|
||||
free(krb_auth);
|
||||
krb_free_tgsreq(krb_tgsreq);
|
||||
xfree(krb_tgsreq);
|
||||
free(krb_tgsreq);
|
||||
stream_free(sapreq);
|
||||
stream_free(s);
|
||||
}
|
||||
@ -863,7 +863,7 @@ int krb_tgsrep_recv(KRB_CONTEXT* krb_ctx)
|
||||
|
||||
/* clean up */
|
||||
krb_free_tgsrep(krb_tgsrep);
|
||||
xfree(krb_tgsrep);
|
||||
free(krb_tgsrep);
|
||||
goto finish;
|
||||
}
|
||||
finish:
|
||||
@ -891,7 +891,7 @@ int krb_verify_kdcrep(KRB_CONTEXT* krb_ctx, KrbKDCREP* kdc_rep, int msgtype)
|
||||
if(krb_ctx->askey->enctype != kdc_rep->enc_part.enctype && msgtype == KRB_TAG_ASREP)
|
||||
{
|
||||
freerdp_blob_free(&(krb_ctx->askey->skey));
|
||||
xfree(krb_ctx->askey);
|
||||
free(krb_ctx->askey);
|
||||
krb_ctx->askey = string2key(&(krb_ctx->passwd), kdc_rep->enc_part.enctype);
|
||||
}
|
||||
krb_ctx->askey->enctype = kdc_rep->enc_part.enctype;
|
||||
@ -915,13 +915,13 @@ int krb_verify_kdcrep(KRB_CONTEXT* krb_ctx, KrbKDCREP* kdc_rep, int msgtype)
|
||||
return -1;
|
||||
}
|
||||
freerdp_blob_free(decmsg);
|
||||
xfree(decmsg);
|
||||
free(decmsg);
|
||||
|
||||
/* Verify KDC-REP-PART */
|
||||
if(reppart->nonce != krb_ctx->nonce || strcasecmp(reppart->realm, krb_ctx->realm) || strcasecmp(reppart->sname, krb_ctx->sname))
|
||||
{
|
||||
krb_free_reppart(reppart);
|
||||
xfree(reppart);
|
||||
free(reppart);
|
||||
krb_ctx->state = KRB_PACKET_ERROR;
|
||||
return -1;
|
||||
}
|
||||
@ -932,7 +932,7 @@ int krb_verify_kdcrep(KRB_CONTEXT* krb_ctx, KrbKDCREP* kdc_rep, int msgtype)
|
||||
freerdp_blob_copy(&(key->skey), &(reppart->key.skey));
|
||||
key->enctype = reppart->key.enctype;
|
||||
krb_free_reppart(reppart);
|
||||
xfree(reppart);
|
||||
free(reppart);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1039,7 +1039,7 @@ KrbAPREQ* krb_apreq_new(KRB_CONTEXT* krb_ctx, Ticket* ticket, Authenticator* krb
|
||||
krb_apreq->enc_auth.kvno = -1;
|
||||
krb_apreq->enc_auth.encblob.data = encmsg->data;
|
||||
krb_apreq->enc_auth.encblob.length = encmsg->length;
|
||||
xfree(encmsg);
|
||||
free(encmsg);
|
||||
}
|
||||
|
||||
stream_free(as);
|
||||
@ -1071,8 +1071,8 @@ void krb_free_ticket(Ticket* ticket)
|
||||
{
|
||||
if (ticket != NULL)
|
||||
{
|
||||
xfree(ticket->realm);
|
||||
xfree(ticket->sname);
|
||||
free(ticket->realm);
|
||||
free(ticket->sname);
|
||||
freerdp_blob_free(&(ticket->enc_part.encblob));
|
||||
ticket->enc_part.encblob.data = NULL;
|
||||
}
|
||||
@ -1087,7 +1087,7 @@ void krb_free_padata(PAData** padata)
|
||||
return;
|
||||
while(*lpa_data != NULL)
|
||||
{
|
||||
xfree(*lpa_data);
|
||||
free(*lpa_data);
|
||||
lpa_data++;
|
||||
}
|
||||
}
|
||||
@ -1097,8 +1097,8 @@ void krb_free_kdcrep(KrbKDCREP* kdc_rep)
|
||||
if(kdc_rep != NULL)
|
||||
{
|
||||
krb_free_padata(kdc_rep->padata);
|
||||
xfree(kdc_rep->cname);
|
||||
xfree(kdc_rep->realm);
|
||||
free(kdc_rep->cname);
|
||||
free(kdc_rep->realm);
|
||||
krb_free_ticket(&(kdc_rep->etgt));
|
||||
freerdp_blob_free(&(kdc_rep->enc_part.encblob));
|
||||
kdc_rep->enc_part.encblob.data = NULL;
|
||||
@ -1110,8 +1110,8 @@ void krb_free_reppart(ENCKDCREPPart* reppart)
|
||||
if(reppart != NULL)
|
||||
{
|
||||
freerdp_blob_free(&(reppart->key.skey));
|
||||
xfree(reppart->sname);
|
||||
xfree(reppart->realm);
|
||||
free(reppart->sname);
|
||||
free(reppart->realm);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1119,12 +1119,12 @@ void krb_free_req_body(KDCReqBody* req_body)
|
||||
{
|
||||
if(req_body != NULL)
|
||||
{
|
||||
xfree(req_body->sname);
|
||||
xfree(req_body->realm);
|
||||
xfree(req_body->cname);
|
||||
xfree(req_body->from);
|
||||
xfree(req_body->till);
|
||||
xfree(req_body->rtime);
|
||||
free(req_body->sname);
|
||||
free(req_body->realm);
|
||||
free(req_body->cname);
|
||||
free(req_body->from);
|
||||
free(req_body->till);
|
||||
free(req_body->rtime);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1156,7 +1156,7 @@ void krb_free_tgsreq(KrbTGSREQ* krb_tgsreq)
|
||||
|
||||
void krb_free_tgsrep(KrbTGSREP* krb_tgsrep)
|
||||
{
|
||||
if(krb_tgsrep != NULL)
|
||||
if (krb_tgsrep != NULL)
|
||||
{
|
||||
krb_free_kdcrep(&(krb_tgsrep->kdc_rep));
|
||||
}
|
||||
@ -1164,9 +1164,9 @@ void krb_free_tgsrep(KrbTGSREP* krb_tgsrep)
|
||||
|
||||
void krb_free_krb_error(KrbERROR* krb_err)
|
||||
{
|
||||
if(krb_err != NULL)
|
||||
if (krb_err != NULL)
|
||||
{
|
||||
xfree(krb_err->stime);
|
||||
free(krb_err->stime);
|
||||
freerdp_blob_free(&(krb_err->edata));
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@
|
||||
#include <openssl/hmac.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/engine.h>
|
||||
#include <freerdp/utils/memory.h>
|
||||
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/sspi.h>
|
||||
|
||||
#include "ntlm.h"
|
||||
@ -60,13 +60,13 @@ void ntlm_SetContextIdentity(NTLM_CONTEXT* context, SEC_WINNT_AUTH_IDENTITY* ide
|
||||
}
|
||||
else
|
||||
{
|
||||
context->identity.User = (uint16*) xmalloc(identity->UserLength);
|
||||
context->identity.User = (uint16*) malloc(identity->UserLength);
|
||||
memcpy(context->identity.User, identity->User, identity->UserLength);
|
||||
context->identity.UserLength = identity->UserLength;
|
||||
|
||||
if (identity->DomainLength > 0)
|
||||
{
|
||||
context->identity.Domain = (uint16*) xmalloc(identity->DomainLength);
|
||||
context->identity.Domain = (uint16*) malloc(identity->DomainLength);
|
||||
memcpy(context->identity.Domain, identity->Domain, identity->DomainLength);
|
||||
context->identity.DomainLength = identity->DomainLength;
|
||||
}
|
||||
@ -76,7 +76,7 @@ void ntlm_SetContextIdentity(NTLM_CONTEXT* context, SEC_WINNT_AUTH_IDENTITY* ide
|
||||
context->identity.DomainLength = 0;
|
||||
}
|
||||
|
||||
context->identity.Password = (uint16*) xmalloc(identity->PasswordLength);
|
||||
context->identity.Password = (uint16*) malloc(identity->PasswordLength);
|
||||
memcpy(context->identity.Password, identity->Password, identity->PasswordLength);
|
||||
context->identity.PasswordLength = identity->PasswordLength;
|
||||
}
|
||||
@ -129,13 +129,13 @@ void ntlm_ContextFree(NTLM_CONTEXT* context)
|
||||
sspi_SecBufferFree(&context->TargetName);
|
||||
sspi_SecBufferFree(&context->NtChallengeResponse);
|
||||
sspi_SecBufferFree(&context->LmChallengeResponse);
|
||||
xfree(context->identity.User);
|
||||
xfree(context->identity.Password);
|
||||
xfree(context->identity.Domain);
|
||||
xfree(context->Workstation);
|
||||
xfree(context->av_pairs->Timestamp.value);
|
||||
xfree(context->av_pairs);
|
||||
xfree(context);
|
||||
free(context->identity.User);
|
||||
free(context->identity.Password);
|
||||
free(context->identity.Domain);
|
||||
free(context->Workstation);
|
||||
free(context->av_pairs->Timestamp.value);
|
||||
free(context->av_pairs);
|
||||
free(context);
|
||||
}
|
||||
|
||||
SECURITY_STATUS SEC_ENTRY ntlm_AcquireCredentialsHandleW(SEC_WCHAR* pszPrincipal, SEC_WCHAR* pszPackage,
|
||||
@ -556,7 +556,7 @@ SECURITY_STATUS SEC_ENTRY ntlm_EncryptMessage(PCtxtHandle phContext, uint32 fQOP
|
||||
|
||||
/* Copy original data buffer */
|
||||
length = data_buffer->cbBuffer;
|
||||
data = xmalloc(length);
|
||||
data = malloc(length);
|
||||
memcpy(data, data_buffer->pvBuffer, length);
|
||||
|
||||
/* Compute the HMAC-MD5 hash of ConcatenationOf(seq_num,data) using the client signing key */
|
||||
@ -574,7 +574,7 @@ SECURITY_STATUS SEC_ENTRY ntlm_EncryptMessage(PCtxtHandle phContext, uint32 fQOP
|
||||
else
|
||||
memcpy(data_buffer->pvBuffer, data, length);
|
||||
|
||||
xfree(data);
|
||||
free(data);
|
||||
|
||||
#ifdef WITH_DEBUG_NTLM
|
||||
printf("Data Buffer (length = %d)\n", length);
|
||||
@ -638,7 +638,7 @@ SECURITY_STATUS SEC_ENTRY ntlm_DecryptMessage(PCtxtHandle phContext, PSecBufferD
|
||||
|
||||
/* Copy original data buffer */
|
||||
length = data_buffer->cbBuffer;
|
||||
data = xmalloc(length);
|
||||
data = malloc(length);
|
||||
memcpy(data, data_buffer->pvBuffer, length);
|
||||
|
||||
/* Decrypt message using with RC4 */
|
||||
@ -651,7 +651,7 @@ SECURITY_STATUS SEC_ENTRY ntlm_DecryptMessage(PCtxtHandle phContext, PSecBufferD
|
||||
HMAC_Update(&hmac, data_buffer->pvBuffer, data_buffer->cbBuffer);
|
||||
HMAC_Final(&hmac, digest, NULL);
|
||||
HMAC_CTX_cleanup(&hmac);
|
||||
xfree(data);
|
||||
free(data);
|
||||
|
||||
/* RC4-encrypt first 8 bytes of digest */
|
||||
crypto_rc4(context->RecvRc4Seal, 8, digest, checksum);
|
||||
|
@ -128,7 +128,7 @@ void ntlm_input_av_pairs(NTLM_CONTEXT* context, STREAM* s)
|
||||
|
||||
default:
|
||||
if (value != NULL)
|
||||
xfree(value);
|
||||
free(value);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ void ntlm_output_av_pairs(NTLM_CONTEXT* context, PSecBuffer buffer)
|
||||
stream_write_zero(s, 8);
|
||||
}
|
||||
|
||||
xfree(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -444,25 +444,25 @@ void ntlm_free_av_pairs(NTLM_CONTEXT* context)
|
||||
if (av_pairs != NULL)
|
||||
{
|
||||
if (av_pairs->NbComputerName.value != NULL)
|
||||
xfree(av_pairs->NbComputerName.value);
|
||||
free(av_pairs->NbComputerName.value);
|
||||
if (av_pairs->NbDomainName.value != NULL)
|
||||
xfree(av_pairs->NbDomainName.value);
|
||||
free(av_pairs->NbDomainName.value);
|
||||
if (av_pairs->DnsComputerName.value != NULL)
|
||||
xfree(av_pairs->DnsComputerName.value);
|
||||
free(av_pairs->DnsComputerName.value);
|
||||
if (av_pairs->DnsDomainName.value != NULL)
|
||||
xfree(av_pairs->DnsDomainName.value);
|
||||
free(av_pairs->DnsDomainName.value);
|
||||
if (av_pairs->DnsTreeName.value != NULL)
|
||||
xfree(av_pairs->DnsTreeName.value);
|
||||
free(av_pairs->DnsTreeName.value);
|
||||
if (av_pairs->Timestamp.value != NULL)
|
||||
xfree(av_pairs->Timestamp.value);
|
||||
free(av_pairs->Timestamp.value);
|
||||
if (av_pairs->Restrictions.value != NULL)
|
||||
xfree(av_pairs->Restrictions.value);
|
||||
free(av_pairs->Restrictions.value);
|
||||
if (av_pairs->TargetName.value != NULL)
|
||||
xfree(av_pairs->TargetName.value);
|
||||
free(av_pairs->TargetName.value);
|
||||
if (av_pairs->ChannelBindings.value != NULL)
|
||||
xfree(av_pairs->ChannelBindings.value);
|
||||
free(av_pairs->ChannelBindings.value);
|
||||
|
||||
xfree(av_pairs);
|
||||
free(av_pairs);
|
||||
}
|
||||
|
||||
context->av_pairs = NULL;
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include <freerdp/crypto/crypto.h>
|
||||
|
||||
#include <freerdp/utils/stream.h>
|
||||
#include <freerdp/utils/memory.h>
|
||||
#include <freerdp/utils/hexdump.h>
|
||||
|
||||
#include "ntlm_compute.h"
|
||||
@ -56,7 +55,7 @@ void ntlm_output_restriction_encoding(NTLM_CONTEXT* context)
|
||||
"\x3A\x15\x8E\xA6\x75\x82\xD8\xF7\x3E\x06\xFA\x7A\xB4\xDF\xFD\x43"
|
||||
"\x84\x6C\x02\x3A\xFD\x5A\x94\xFE\xCF\x97\x0F\x3D\x19\x2C\x38\x20";
|
||||
|
||||
restrictions->value = xmalloc(48);
|
||||
restrictions->value = malloc(48);
|
||||
restrictions->length = 48;
|
||||
|
||||
s = stream_new(0);
|
||||
@ -72,7 +71,7 @@ void ntlm_output_restriction_encoding(NTLM_CONTEXT* context)
|
||||
stream_write_uint32(s, 0x00002000); /* SubjectIntegrityLevel */
|
||||
stream_write(s, machineID, 32); /* MachineID */
|
||||
|
||||
xfree(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,14 +94,14 @@ void ntlm_output_target_name(NTLM_CONTEXT* context)
|
||||
"\x00\x2e\x00\x31\x00\x36\x00\x38\x00\x2e\x00\x30\x00\x2e\x00\x31\x00\x32\x00\x33\x00";
|
||||
|
||||
TargetName->length = 42;
|
||||
TargetName->value = (uint8*) xmalloc(TargetName->length);
|
||||
TargetName->value = (uint8*) malloc(TargetName->length);
|
||||
|
||||
s = stream_new(0);
|
||||
stream_attach(s, TargetName->value, TargetName->length);
|
||||
|
||||
stream_write(s, name, TargetName->length);
|
||||
|
||||
xfree(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,7 +114,7 @@ void ntlm_output_channel_bindings(NTLM_CONTEXT* context)
|
||||
STREAM* s;
|
||||
AV_PAIR* ChannelBindings = &context->av_pairs->ChannelBindings;
|
||||
|
||||
ChannelBindings->value = (uint8*) xmalloc(48);
|
||||
ChannelBindings->value = (uint8*) malloc(48);
|
||||
ChannelBindings->length = 16;
|
||||
|
||||
s = stream_new(0);
|
||||
@ -123,7 +122,7 @@ void ntlm_output_channel_bindings(NTLM_CONTEXT* context)
|
||||
|
||||
stream_write_zero(s, 16); /* an all-zero value of the hash is used to indicate absence of channel bindings */
|
||||
|
||||
xfree(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -164,7 +163,7 @@ void ntlm_generate_timestamp(NTLM_CONTEXT* context)
|
||||
if (context->av_pairs->Timestamp.length != 8)
|
||||
{
|
||||
context->av_pairs->Timestamp.length = 8;
|
||||
context->av_pairs->Timestamp.value = xmalloc(context->av_pairs->Timestamp.length);
|
||||
context->av_pairs->Timestamp.value = malloc(context->av_pairs->Timestamp.length);
|
||||
}
|
||||
|
||||
memcpy(context->av_pairs->Timestamp.value, context->Timestamp, 8);
|
||||
@ -428,7 +427,7 @@ void ntlm_generate_signing_key(uint8* exported_session_key, PSecBuffer sign_magi
|
||||
CryptoMd5 md5;
|
||||
|
||||
length = 16 + sign_magic->cbBuffer;
|
||||
value = (uint8*) xmalloc(length);
|
||||
value = (uint8*) malloc(length);
|
||||
|
||||
/* Concatenate ExportedSessionKey with sign magic */
|
||||
memcpy(value, exported_session_key, 16);
|
||||
@ -438,7 +437,7 @@ void ntlm_generate_signing_key(uint8* exported_session_key, PSecBuffer sign_magi
|
||||
crypto_md5_update(md5, value, length);
|
||||
crypto_md5_final(md5, signing_key);
|
||||
|
||||
xfree(value);
|
||||
free(value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,8 +17,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <winpr//sspi.h>
|
||||
#include <freerdp/utils/memory.h>
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/sspi.h>
|
||||
|
||||
#include "negotiate.h"
|
||||
|
||||
@ -72,12 +72,12 @@ void negotiate_SetContextIdentity(NEGOTIATE_CONTEXT* context, SEC_WINNT_AUTH_IDE
|
||||
}
|
||||
else
|
||||
{
|
||||
context->identity.User = (uint16*) xmalloc(identity->UserLength);
|
||||
context->identity.User = (uint16*) malloc(identity->UserLength);
|
||||
memcpy(context->identity.User, identity->User, identity->UserLength);
|
||||
|
||||
if (identity->DomainLength > 0)
|
||||
{
|
||||
context->identity.Domain = (uint16*) xmalloc(identity->DomainLength);
|
||||
context->identity.Domain = (uint16*) malloc(identity->DomainLength);
|
||||
memcpy(context->identity.Domain, identity->Domain, identity->DomainLength);
|
||||
}
|
||||
else
|
||||
@ -86,7 +86,7 @@ void negotiate_SetContextIdentity(NEGOTIATE_CONTEXT* context, SEC_WINNT_AUTH_IDE
|
||||
context->identity.DomainLength = 0;
|
||||
}
|
||||
|
||||
context->identity.Password = (uint16*) xmalloc(identity->PasswordLength);
|
||||
context->identity.Password = (uint16*) malloc(identity->PasswordLength);
|
||||
memcpy(context->identity.Password, identity->Password, identity->PasswordLength);
|
||||
}
|
||||
}
|
||||
@ -146,7 +146,7 @@ NEGOTIATE_CONTEXT* negotiate_ContextNew()
|
||||
{
|
||||
NEGOTIATE_CONTEXT* context;
|
||||
|
||||
context = xnew(NEGOTIATE_CONTEXT);
|
||||
context = (NEGOTIATE_CONTEXT*) calloc(1, sizeof(NEGOTIATE_CONTEXT));
|
||||
|
||||
if (context != NULL)
|
||||
{
|
||||
@ -163,7 +163,7 @@ void negotiate_ContextFree(NEGOTIATE_CONTEXT* context)
|
||||
if (!context)
|
||||
return;
|
||||
|
||||
xfree(context);
|
||||
free(context);
|
||||
}
|
||||
|
||||
SECURITY_STATUS SEC_ENTRY negotiate_QueryContextAttributes(PCtxtHandle phContext, uint32 ulAttribute, void* pBuffer)
|
||||
|
@ -19,10 +19,9 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/sspi.h>
|
||||
|
||||
#include <freerdp/utils/memory.h>
|
||||
|
||||
#include "sspi.h"
|
||||
|
||||
/* Authentication Functions: http://msdn.microsoft.com/en-us/library/windows/desktop/aa374731/ */
|
||||
@ -368,8 +367,8 @@ SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(uint32* pcPackages, PSecPkg
|
||||
pPackageInfo[index].wVersion = SecPkgInfoW_LIST[index]->wVersion;
|
||||
pPackageInfo[index].wRPCID = SecPkgInfoW_LIST[index]->wRPCID;
|
||||
pPackageInfo[index].cbMaxToken = SecPkgInfoW_LIST[index]->cbMaxToken;
|
||||
pPackageInfo[index].Name = xwcsdup(SecPkgInfoW_LIST[index]->Name);
|
||||
pPackageInfo[index].Comment = xwcsdup(SecPkgInfoW_LIST[index]->Comment);
|
||||
pPackageInfo[index].Name = _wcsdup(SecPkgInfoW_LIST[index]->Name);
|
||||
pPackageInfo[index].Comment = _wcsdup(SecPkgInfoW_LIST[index]->Comment);
|
||||
}
|
||||
|
||||
*(pcPackages) = cPackages;
|
||||
@ -396,8 +395,8 @@ SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(uint32* pcPackages, PSecPkg
|
||||
pPackageInfo[index].wVersion = SecPkgInfoA_LIST[index]->wVersion;
|
||||
pPackageInfo[index].wRPCID = SecPkgInfoA_LIST[index]->wRPCID;
|
||||
pPackageInfo[index].cbMaxToken = SecPkgInfoA_LIST[index]->cbMaxToken;
|
||||
pPackageInfo[index].Name = xstrdup(SecPkgInfoA_LIST[index]->Name);
|
||||
pPackageInfo[index].Comment = xstrdup(SecPkgInfoA_LIST[index]->Comment);
|
||||
pPackageInfo[index].Name = _strdup(SecPkgInfoA_LIST[index]->Name);
|
||||
pPackageInfo[index].Comment = _strdup(SecPkgInfoA_LIST[index]->Comment);
|
||||
}
|
||||
|
||||
*(pcPackages) = cPackages;
|
||||
@ -412,7 +411,7 @@ void FreeContextBuffer_EnumerateSecurityPackages(void* contextBuffer)
|
||||
uint32 cPackages;
|
||||
SecPkgInfoA* pPackageInfo = (SecPkgInfoA*) contextBuffer;
|
||||
|
||||
cPackages = ARRAY_SIZE(SecPkgInfoA_LIST);
|
||||
cPackages = sizeof(SecPkgInfoA_LIST) / sizeof(*(SecPkgInfoA_LIST));
|
||||
|
||||
for (index = 0; index < (int) cPackages; index++)
|
||||
{
|
||||
@ -443,7 +442,7 @@ SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(SEC_WCHAR* pszPackageName, P
|
||||
uint32 cPackages;
|
||||
SecPkgInfoW* pPackageInfo;
|
||||
|
||||
cPackages = ARRAY_SIZE(SecPkgInfoW_LIST);
|
||||
cPackages = sizeof(SecPkgInfoW_LIST) / sizeof(*(SecPkgInfoW_LIST));
|
||||
|
||||
for (index = 0; index < (int) cPackages; index++)
|
||||
{
|
||||
@ -456,8 +455,8 @@ SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(SEC_WCHAR* pszPackageName, P
|
||||
pPackageInfo->wVersion = SecPkgInfoW_LIST[index]->wVersion;
|
||||
pPackageInfo->wRPCID = SecPkgInfoW_LIST[index]->wRPCID;
|
||||
pPackageInfo->cbMaxToken = SecPkgInfoW_LIST[index]->cbMaxToken;
|
||||
pPackageInfo->Name = xwcsdup(SecPkgInfoW_LIST[index]->Name);
|
||||
pPackageInfo->Comment = xwcsdup(SecPkgInfoW_LIST[index]->Comment);
|
||||
pPackageInfo->Name = _wcsdup(SecPkgInfoW_LIST[index]->Name);
|
||||
pPackageInfo->Comment = _wcsdup(SecPkgInfoW_LIST[index]->Comment);
|
||||
|
||||
*(ppPackageInfo) = pPackageInfo;
|
||||
|
||||
@ -477,7 +476,7 @@ SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(SEC_CHAR* pszPackageName, PS
|
||||
uint32 cPackages;
|
||||
SecPkgInfoA* pPackageInfo;
|
||||
|
||||
cPackages = ARRAY_SIZE(SecPkgInfoA_LIST);
|
||||
cPackages = sizeof(SecPkgInfoA_LIST) / sizeof(*(SecPkgInfoA_LIST));
|
||||
|
||||
for (index = 0; index < (int) cPackages; index++)
|
||||
{
|
||||
@ -490,8 +489,8 @@ SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(SEC_CHAR* pszPackageName, PS
|
||||
pPackageInfo->wVersion = SecPkgInfoA_LIST[index]->wVersion;
|
||||
pPackageInfo->wRPCID = SecPkgInfoA_LIST[index]->wRPCID;
|
||||
pPackageInfo->cbMaxToken = SecPkgInfoA_LIST[index]->cbMaxToken;
|
||||
pPackageInfo->Name = xstrdup(SecPkgInfoA_LIST[index]->Name);
|
||||
pPackageInfo->Comment = xstrdup(SecPkgInfoA_LIST[index]->Comment);
|
||||
pPackageInfo->Name = _strdup(SecPkgInfoA_LIST[index]->Name);
|
||||
pPackageInfo->Comment = _strdup(SecPkgInfoA_LIST[index]->Comment);
|
||||
|
||||
*(ppPackageInfo) = pPackageInfo;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user