winecfg: Protect from closing the root key.

Dmitry Timoshkov dmitry at codeweavers.com
Wed Mar 9 23:31:54 CST 2011


This patch should fix the crash reported in the bug #26367.
---
 programs/winecfg/winecfg.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/programs/winecfg/winecfg.c b/programs/winecfg/winecfg.c
index c41d2ba..707a431 100644
--- a/programs/winecfg/winecfg.c
+++ b/programs/winecfg/winecfg.c
@@ -562,7 +562,7 @@ static WCHAR **enumerate_valuesW(HKEY root, WCHAR *path)
         values[valueslen] = NULL;
     }
 
-    RegCloseKey(key);
+    if (key != root) RegCloseKey(key);
 
     return values;
 }
@@ -646,7 +646,7 @@ static void process_setting(struct setting *s)
             /* NULL name means remove that path/section entirely */
             if (s->name) RegDeleteValueW( key, s->name );
             else RegDeleteTreeW( key, NULL );
-            RegCloseKey( key );
+            if (key != s->root) RegCloseKey( key );
         }
         if (needs_wow64)
         {
@@ -655,7 +655,7 @@ static void process_setting(struct setting *s)
             {
                 if (s->name) RegDeleteValueW( key, s->name );
                 else RegDeleteTreeW( key, NULL );
-                RegCloseKey( key );
+                if (key != s->root) RegCloseKey( key );
             }
         }
     }
-- 
1.7.3.5




More information about the wine-patches mailing list