Re: cleanup a->w cross calls in advapi32/crypt.c
"James Hawkins" <truiken(a)gmail.com> wrote:
This is a resubmit of my original patch that cleans up a->w cross calls in crypt.
Changelog * cleanup a->w cross calls in advapi32/crypt.c
+ static const WCHAR KEYSTR[] = { + 'S','o','f','t','w','a','r','e','\\','\\', + 'M','i','c','r','o','s','o','f','t','\\','\\', + 'C','r','y','p','t','o','g','r','a','p','h','y','\\','\\', + 'D','e','f','a','u','l','t','s','\\','\\', + 'P','r','o','v','i','d','e','r','\\','\\',0 + };
Remove double backslashes here and everywhere else.
- keyname = CRYPT_Alloc(strlen(KEYSTR) + strlen(pProvName) +1); + keyname = CRYPT_Alloc(strlenW(KEYSTR) + strlenW(pProvName) + 1);
Add '* sizeof(WCHAR)' and everywhere else where storage for unicode strings is allocated.
- keyname = CRYPT_Alloc( (user ? strlen(USERSTR) : strlen(MACHINESTR)) +1); + keyname = CRYPT_Alloc( (user ? strlenW(USERSTR) : strlenW(MACHINESTR)) +1);
Add '* sizeof(WCHAR)'
+ static WCHAR nameW[] = {'N','a','m','e',0}; + static WCHAR typeW[] = {'T','y','p','e',0}; + static WCHAR imagePathW[] = {'I','m','a','g','e',' ','P','a','t','h',0}; + static WCHAR signatureW[] = {'S','i','g','n','a','t','u','r','e',0}; + static WCHAR sigInFileW[] = {'S','i','g','I','n','F','i','l','e',0};
Add 'const'.
- if ( !(provname = CRYPT_Alloc(strlen(pszProvider) +1)) ) + if ( !(provname = CRYPT_Alloc(strlenW(pszProvider) +1)) )
Add '* sizeof(WCHAR)'
- len = ExpandEnvironmentStringsA(temp, NULL, 0); + len = ExpandEnvironmentStringsW(temp, NULL, 0); if ( !(imagepath = CRYPT_Alloc(len)) )
Add '* sizeof(WCHAR)' ... And lots of similar bugs. -- Dmitry.
participants (1)
-
Dmitry Timoshkov