Module: wine Branch: stable Commit: edb5cc18f9a1a390ac5ce8fabefe0a6c523f4dea URL: http://source.winehq.org/git/wine.git/?a=commit;h=edb5cc18f9a1a390ac5ce8fabe...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Fri Mar 11 16:04:37 2011 +0800
winecfg: Protect from closing the root key. (cherry picked from commit 88a4b618b1d9e0f6a9b07740a884b63f13b8edeb)
---
programs/winecfg/winecfg.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/programs/winecfg/winecfg.c b/programs/winecfg/winecfg.c index c41d2ba..1d2ec50 100644 --- a/programs/winecfg/winecfg.c +++ b/programs/winecfg/winecfg.c @@ -113,7 +113,7 @@ static WCHAR *get_config_key (HKEY root, const WCHAR *subkey, const WCHAR *name, WINE_TRACE("subkey=%s, name=%s, def=%s\n", wine_dbgstr_w(subkey), wine_dbgstr_w(name), wine_dbgstr_w(def));
- res = RegOpenKeyW(root, subkey, &hSubKey); + res = RegOpenKeyExW(root, subkey, 0, MAXIMUM_ALLOWED, &hSubKey); if (res != ERROR_SUCCESS) { if (res == ERROR_FILE_NOT_FOUND) @@ -146,7 +146,7 @@ static WCHAR *get_config_key (HKEY root, const WCHAR *subkey, const WCHAR *name,
WINE_TRACE("buffer=%s\n", wine_dbgstr_w(buffer)); end: - if (hSubKey && hSubKey != root) RegCloseKey(hSubKey); + RegCloseKey(hSubKey);
return buffer; } @@ -471,7 +471,7 @@ static WCHAR **enumerate_valuesW(HKEY root, WCHAR *path) WCHAR **values = NULL; struct list *cursor;
- res = RegOpenKeyW(root, path, &key); + res = RegOpenKeyExW(root, path, 0, MAXIMUM_ALLOWED, &key); if (res == ERROR_SUCCESS) { while (TRUE) @@ -641,7 +641,7 @@ static void process_setting(struct setting *s) else { WINE_TRACE("Removing %s:%s\n", wine_dbgstr_w(s->path), wine_dbgstr_w(s->name)); - if (!RegOpenKeyW( s->root, s->path, &key )) + if (!RegOpenKeyExW( s->root, s->path, 0, MAXIMUM_ALLOWED, &key )) { /* NULL name means remove that path/section entirely */ if (s->name) RegDeleteValueW( key, s->name );