[PATCH 1/7] advapi32: Implement CredWriteW.

Robert Shearman rob at codeweavers.com
Fri Nov 2 08:44:21 CDT 2007

Detlef Riekenberg wrote:
> On Di, 2007-10-30 at 12:36 +0000, Robert Shearman wrote:
>> +static DWORD open_cred_mgr_key(HKEY *hkey, BOOL open_for_write)
>> +{
>> +    return RegCreateKeyExW(HKEY_CURRENT_USER,
>> wszCredentialManagerKey, 0,
>> +                           NULL, REG_OPTION_NON_VOLATILE,
>> +                           KEY_READ | KEY_WRITE, NULL, hkey, NULL);
>> +}
>> + 
> What's the reason of the Parameter "BOOL open_for_write" ?
> open_cred_mgr_key is called with (..., TRUE) and (..., FALSE), but
> you always use "KEY_READ | KEY_WRITE".
> On the other hand, gcc does not warn about that unused Parameter.
> My first Idea was the optimizer in gcc, but removing "-O2" does not give
> us a warning.
> With "-pedantic", we lost (but still no warning for "open_for_write").

It was left over from a previous revision of the code. Opening that key 
with read-only access worked until I needed to store the encryption key 
in the root of it, so I fixed it without cleaning up the code properly.

There are two options now: fix the CredRead/CredEnumerate code to cope 
with the encryption key not being there, or just remove the BOOL 
parameter from open_cred_mgr_key. Since HKEY_CURRENT_USER should always 
be writable (except in specific cases on Windows w.r.t. restricted 
users, which we probably wouldn't want accessing this key anyway), I'm 
going do the latter option to fix it.

Thanks for spotting it,

Rob Shearman

More information about the wine-devel mailing list