Module: wine Branch: master Commit: 0868486d179bdce1c4b29e1c596d9d24d00253cc URL: http://source.winehq.org/git/wine.git/?a=commit;h=0868486d179bdce1c4b29e1c59...
Author: Thomas Faber thomas.faber@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: