X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/c19a50ed930f391506dc660a01090a51d659acd3..209230894fbb1d2c8228902e220b4d32da540ab0:/windows/winstore.c diff --git a/windows/winstore.c b/windows/winstore.c index f454f172..2e812c34 100644 --- a/windows/winstore.c +++ b/windows/winstore.c @@ -82,13 +82,14 @@ void *open_settings_w(const char *sessionname, char **errmsg) return NULL; } ret = RegCreateKey(subkey1, p, &sesskey); - sfree(p); RegCloseKey(subkey1); if (ret != ERROR_SUCCESS) { *errmsg = dupprintf("Unable to create registry key\n" "HKEY_CURRENT_USER\\%s\\%s", puttystr, p); + sfree(p); return NULL; } + sfree(p); return (void *) sesskey; } @@ -103,7 +104,7 @@ void write_setting_i(void *handle, const char *key, int value) { if (handle) RegSetValueEx((HKEY) handle, key, 0, REG_DWORD, - (CONST BYTE *) & value, sizeof(value)); + (CONST BYTE *) &value, sizeof(value)); } void close_settings_w(void *handle) @@ -156,7 +157,7 @@ int read_setting_i(void *handle, const char *key, int defvalue) if (!handle || RegQueryValueEx((HKEY) handle, key, 0, &type, - (BYTE *) & val, &size) != ERROR_SUCCESS || + (BYTE *) &val, &size) != ERROR_SUCCESS || size != sizeof(val) || type != REG_DWORD) return defvalue; else