Huw Davies : user32: Don't call CreateDesktop() with an empty desktop name.

Alexandre Julliard julliard at winehq.org
Wed Jun 24 15:47:35 CDT 2020


Module: wine
Branch: master
Commit: 42e50e44f416a9d610d09af4cabb2675d2053412
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=42e50e44f416a9d610d09af4cabb2675d2053412

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Jun 24 11:37:21 2020 +0100

user32: Don't call CreateDesktop() with an empty desktop name.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/user_main.c     | 5 +++--
 programs/explorer/desktop.c | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c
index 9e45835e3a..6b70db4978 100644
--- a/dlls/user32/user_main.c
+++ b/dlls/user32/user_main.c
@@ -196,7 +196,8 @@ static const WCHAR *get_default_desktop(void)
             len = sizeof(buffer);
             if (!RegQueryValueExW( appkey, desktopW, 0, NULL, (LPBYTE)buffer, &len )) ret = buffer;
             RegCloseKey( appkey );
-            if (ret) return ret;
+            if (ret && *ret) return ret;
+            ret = NULL;
         }
     }
 
@@ -209,7 +210,7 @@ static const WCHAR *get_default_desktop(void)
         len = sizeof(buffer);
         if (!RegQueryValueExW( appkey, desktopW, 0, NULL, (LPBYTE)buffer, &len )) ret = buffer;
         RegCloseKey( appkey );
-        if (ret) return ret;
+        if (ret && *ret) return ret;
     }
     return defaultW;
 }
diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c
index e7acb2db77..691db5c8bd 100644
--- a/programs/explorer/desktop.c
+++ b/programs/explorer/desktop.c
@@ -732,7 +732,7 @@ static const WCHAR *get_default_desktop_name(void)
     /* @@ Wine registry key: HKCU\Software\Wine\Explorer */
     if (!RegOpenKeyW( HKEY_CURRENT_USER, explorer_keyW, &hkey ))
     {
-        if (!RegQueryValueExW( hkey, desktopW, 0, NULL, (LPBYTE)buffer, &size )) ret = buffer;
+        if (!RegQueryValueExW( hkey, desktopW, 0, NULL, (LPBYTE)buffer, &size ) && *buffer) ret = buffer;
         RegCloseKey( hkey );
     }
     return ret;
@@ -974,7 +974,7 @@ void manage_desktop( WCHAR *arg )
 
     /* parse the desktop option */
     /* the option is of the form /desktop=name[,widthxheight[,driver]] */
-    if (*arg == '=' || *arg == ',')
+    if ((arg[0] == '=' || arg[0] == ',') && arg[1] && arg[1] != ',')
     {
         arg++;
         name = arg;




More information about the wine-cvs mailing list