Thomas Faber : advapi32: Remove unnecessary buffer copy in CredMarshalCredentialW.
Alexandre Julliard
julliard at winehq.org
Mon Mar 31 13:32:43 CDT 2014
Module: wine
Branch: master
Commit: 0868486d179bdce1c4b29e1c596d9d24d00253cc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0868486d179bdce1c4b29e1c596d9d24d00253cc
Author: Thomas Faber <thomas.faber at reactos.org>
Date: Sat Mar 29 11:08:34 2014 +0100
advapi32: Remove unnecessary buffer copy in CredMarshalCredentialW.
---
dlls/advapi32/cred.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/dlls/advapi32/cred.c b/dlls/advapi32/cred.c
index f407c0d..2d98ecc 100644
--- a/dlls/advapi32/cred.c
+++ b/dlls/advapi32/cred.c
@@ -1952,18 +1952,13 @@ BOOL WINAPI CredMarshalCredentialW( CRED_MARSHAL_TYPE type, PVOID cred, LPWSTR *
{
case CertCredential:
{
- char hash[CERT_HASH_LENGTH + 2];
-
- memcpy( hash, cert->rgbHashOfCert, sizeof(cert->rgbHashOfCert) );
- memset( hash + sizeof(cert->rgbHashOfCert), 0, sizeof(hash) - sizeof(cert->rgbHashOfCert) );
-
- size = sizeof(hash) * 4 / 3;
+ size = (sizeof(cert->rgbHashOfCert) + 2) * 4 / 3;
if (!(p = HeapAlloc( GetProcessHeap(), 0, (size + 4) * sizeof(WCHAR) ))) return FALSE;
p[0] = '@';
p[1] = '@';
p[2] = 'A' + type;
- len = cred_encode( (const char *)hash, sizeof(hash), p + 3 );
- p[len] = 0;
+ len = cred_encode( (const char *)cert->rgbHashOfCert, sizeof(cert->rgbHashOfCert), p + 3 );
+ p[len + 3] = 0;
break;
}
case UsernameTargetCredential:
More information about the wine-cvs
mailing list