[USER32]
authorThomas Faber <thomas.faber@reactos.org>
Tue, 18 Apr 2017 14:31:33 +0000 (14:31 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Tue, 18 Apr 2017 14:31:33 +0000 (14:31 +0000)
- In RealSystemParametersInfoA/SPI_GETDESKWALLPAPER, write the ansi wallpaper path directly into the user's buffer instead of using an allocation (and overrunning it). Fixes crash when running user32_winetest:sysparams with DPH.
Tangential to CORE-13097

svn path=/trunk/; revision=74370

reactos/win32ss/user/user32/misc/desktop.c

index 25e2e4b..49f23c2 100644 (file)
@@ -306,10 +306,8 @@ RealSystemParametersInfoA(UINT uiAction,
 
         Ret = NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, awc, fWinIni);
         RtlInitUnicodeString(&ustrWallpaper, awc);
-        RtlUnicodeStringToAnsiString(&astrWallpaper, &ustrWallpaper, TRUE);
-
-        RtlCopyMemory(pvParam, astrWallpaper.Buffer, uiParam);
-        RtlFreeAnsiString(&astrWallpaper);
+        RtlInitEmptyAnsiString(&astrWallpaper, pvParam, uiParam);
+        RtlUnicodeStringToAnsiString(&astrWallpaper, &ustrWallpaper, FALSE);
         return Ret;
       }