mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 13cc08e32d6c04f8f915d07cda39638ee99c3d43.
This commit is contained in:
parent
eff142bc57
commit
49ed7ae4a0
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "1d636da205e39436bbd71849ceeebc5420bf98a9"
|
||||
echo "13cc08e32d6c04f8f915d07cda39638ee99c3d43"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -204,7 +204,6 @@ patch_enable_all ()
|
||||
enable_user32_rawinput_mouse="$1"
|
||||
enable_user32_rawinput_mouse_experimental="$1"
|
||||
enable_user32_recursive_activation="$1"
|
||||
enable_uxtheme_CloseThemeClass="$1"
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_wbemdisp_ISWbemObject_Invoke="$1"
|
||||
enable_widl_SLTG_Typelib_Support="$1"
|
||||
@ -628,9 +627,6 @@ patch_enable ()
|
||||
user32-recursive-activation)
|
||||
enable_user32_recursive_activation="$2"
|
||||
;;
|
||||
uxtheme-CloseThemeClass)
|
||||
enable_uxtheme_CloseThemeClass="$2"
|
||||
;;
|
||||
version-VerQueryValue)
|
||||
enable_version_VerQueryValue="$2"
|
||||
;;
|
||||
@ -3115,18 +3111,6 @@ if test "$enable_user32_recursive_activation" -eq 1; then
|
||||
patch_apply user32-recursive-activation/0002-user32-tests-Test-a-recursive-activation-loop-on-WM_.patch
|
||||
fi
|
||||
|
||||
# Patchset uxtheme-CloseThemeClass
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#41729] Protect CloseThemeData() from invalid input
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/uxtheme/msstyles.c, dlls/uxtheme/msstyles.h, dlls/uxtheme/tests/system.c
|
||||
# |
|
||||
if test "$enable_uxtheme_CloseThemeClass" -eq 1; then
|
||||
patch_apply uxtheme-CloseThemeClass/0001-uxtheme-Protect-CloseThemeData-from-invalid-input.patch
|
||||
fi
|
||||
|
||||
# Patchset version-VerQueryValue
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -1,115 +0,0 @@
|
||||
From ef1c68c88caa4b4edfce72ad7fed38a4e23a56d1 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 18 Nov 2016 22:31:29 +0800
|
||||
Subject: [PATCH] uxtheme: Protect CloseThemeData() from invalid input.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Testcase by Michael Müller <michael@fds-team.de>.
|
||||
---
|
||||
dlls/uxtheme/msstyles.c | 22 ++++++++++++++++++++++
|
||||
dlls/uxtheme/msstyles.h | 3 ++-
|
||||
dlls/uxtheme/tests/system.c | 4 ++++
|
||||
3 files changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/uxtheme/msstyles.c b/dlls/uxtheme/msstyles.c
|
||||
index 9e5a79a1c69..18c675214d9 100644
|
||||
--- a/dlls/uxtheme/msstyles.c
|
||||
+++ b/dlls/uxtheme/msstyles.c
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
#include "msstyles.h"
|
||||
|
||||
+#include "wine/exception.h"
|
||||
#include "wine/debug.h"
|
||||
#include "wine/heap.h"
|
||||
|
||||
@@ -49,6 +50,8 @@ static HRESULT MSSTYLES_GetFont (LPCWSTR lpStringStart, LPCWSTR lpStringEnd, LPC
|
||||
|
||||
#define MSSTYLES_VERSION 0x0003
|
||||
|
||||
+#define THEME_CLASS_SIGNATURE (('T' << 24) | ('H' << 16) | ('E' << 8) | 'M')
|
||||
+
|
||||
static PTHEME_FILE tfActiveTheme;
|
||||
|
||||
/***********************************************************************/
|
||||
@@ -204,6 +207,7 @@ void MSSTYLES_CloseThemeFile(PTHEME_FILE tf)
|
||||
pcls->partstate = ps->next;
|
||||
heap_free(ps);
|
||||
}
|
||||
+ pcls->signature = 0;
|
||||
heap_free(pcls);
|
||||
}
|
||||
}
|
||||
@@ -442,6 +446,7 @@ static PTHEME_CLASS MSSTYLES_AddClass(PTHEME_FILE tf, LPCWSTR pszAppName, LPCWST
|
||||
if(cur) return cur;
|
||||
|
||||
cur = heap_alloc(sizeof(*cur));
|
||||
+ cur->signature = THEME_CLASS_SIGNATURE;
|
||||
cur->hTheme = tf->hTheme;
|
||||
lstrcpyW(cur->szAppName, pszAppName);
|
||||
lstrcpyW(cur->szClassName, pszClassName);
|
||||
@@ -1075,6 +1080,23 @@ PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszAppName, LPCWSTR pszClassList, U
|
||||
*/
|
||||
HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc)
|
||||
{
|
||||
+ __TRY
|
||||
+ {
|
||||
+ if (tc->signature != THEME_CLASS_SIGNATURE)
|
||||
+ tc = NULL;
|
||||
+ }
|
||||
+ __EXCEPT_PAGE_FAULT
|
||||
+ {
|
||||
+ tc = NULL;
|
||||
+ }
|
||||
+ __ENDTRY
|
||||
+
|
||||
+ if (!tc)
|
||||
+ {
|
||||
+ WARN("Invalid theme class handle\n");
|
||||
+ return E_HANDLE;
|
||||
+ }
|
||||
+
|
||||
MSSTYLES_CloseThemeFile (tc->tf);
|
||||
return S_OK;
|
||||
}
|
||||
diff --git a/dlls/uxtheme/msstyles.h b/dlls/uxtheme/msstyles.h
|
||||
index 67f81315d7a..9a65b7cb8a7 100644
|
||||
--- a/dlls/uxtheme/msstyles.h
|
||||
+++ b/dlls/uxtheme/msstyles.h
|
||||
@@ -49,6 +49,7 @@ typedef struct _THEME_PARTSTATE {
|
||||
struct _THEME_FILE;
|
||||
|
||||
typedef struct _THEME_CLASS {
|
||||
+ DWORD signature;
|
||||
HMODULE hTheme;
|
||||
struct _THEME_FILE* tf;
|
||||
WCHAR szAppName[MAX_THEME_APP_NAME];
|
||||
@@ -64,7 +65,7 @@ typedef struct _THEME_IMAGE {
|
||||
WCHAR name[MAX_PATH];
|
||||
HBITMAP image;
|
||||
BOOL hasAlpha;
|
||||
-
|
||||
+
|
||||
struct _THEME_IMAGE *next;
|
||||
} THEME_IMAGE, *PTHEME_IMAGE;
|
||||
|
||||
diff --git a/dlls/uxtheme/tests/system.c b/dlls/uxtheme/tests/system.c
|
||||
index 93b6f1aa8f7..2e3a323f96c 100644
|
||||
--- a/dlls/uxtheme/tests/system.c
|
||||
+++ b/dlls/uxtheme/tests/system.c
|
||||
@@ -528,6 +528,10 @@ static void test_OpenThemeData(void)
|
||||
ok( GetLastError() == E_PROP_ID_UNSUPPORTED, "Expected 0x%08lx, got 0x%08lx\n",
|
||||
E_PROP_ID_UNSUPPORTED, GetLastError() );
|
||||
|
||||
+ /* Close invalid handle */
|
||||
+ hRes = CloseThemeData((HTHEME)0xdeadbeef);
|
||||
+ ok( hRes == E_HANDLE, "Expected E_HANDLE, got 0x%08lx\n", hRes);
|
||||
+
|
||||
if (!bThemeActive)
|
||||
{
|
||||
SetLastError(0xdeadbeef);
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [41729] Protect CloseThemeData() from invalid input
|
@ -1,5 +1,4 @@
|
||||
# based on https://github.com/akulinchev/uxthemegtk
|
||||
# sha1: ecbca8e848834180092d9078be0762a60617fcd7
|
||||
Depends: uxtheme-CloseThemeClass
|
||||
Disabled: True
|
||||
Fixes: Add support for GTK3 theming
|
||||
|
@ -1 +1 @@
|
||||
1d636da205e39436bbd71849ceeebc5420bf98a9
|
||||
13cc08e32d6c04f8f915d07cda39638ee99c3d43
|
||||
|
Loading…
Reference in New Issue
Block a user