libwinpr-sspi: reduce usage of memory utils

This commit is contained in:
Marc-André Moreau 2012-05-05 22:39:00 -04:00
parent 813cf27ccd
commit 3266888ae5
6 changed files with 99 additions and 101 deletions

View File

@ -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));
}
}

View File

@ -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);

View File

@ -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;

View File

@ -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);
}
/**

View File

@ -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)

View File

@ -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;