diff --git a/patches/protonprep-lutris-staging.sh b/patches/protonprep-lutris-staging.sh index 47c7619..15fe552 100755 --- a/patches/protonprep-lutris-staging.sh +++ b/patches/protonprep-lutris-staging.sh @@ -174,8 +174,8 @@ patch -Np1 < ../patches/wine-hotfixes/staging/ntdll-DOS_Attributes/0008-ntdll-Always-store-SAMBA_XATTR_DOS_ATTRIB-when-path-.patch # loader-KeyboardLayouts - patch -Np1 < ../wine-staging/patches/loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch - patch -Np1 < ../wine-staging/patches/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch + patch -Np1 < ../patches/wine-hotfixes/staging/loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch + patch -Np1 < ../patches/wine-hotfixes/staging/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch # ntdll-ApiSetMap patch -Np1 < ../wine-staging/patches/ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch @@ -350,7 +350,6 @@ # https://bugs.winehq.org/show_bug.cgi?id=52956 echo "WINE: -HOTFIX- fix star citizen bug 52956" - patch -Np1 < ../patches/wine-hotfixes/upstream/15aa8c6-fix-star-citizen-bug-52956.patch patch -Np1 < ../patches/wine-hotfixes/pending/0001-winex11.drv-Define-ControlMask-when-not-available.patch patch -Np1 < ../patches/wine-hotfixes/pending/0002-include-Add-THREAD_POWER_THROTTLING_STATE-type.patch patch -Np1 < ../patches/wine-hotfixes/pending/0003-ntdll-Fake-success-for-ThreadPowerThrottlingState.patch @@ -380,6 +379,11 @@ echo "WINE: -HOTFIX- fix Overwatch 2 shader compilation issue" # https://gitlab.winehq.org/wine/wine/-/merge_requests/1152 patch -Np1 < ../patches/wine-hotfixes/pending/1152.patch + + echo "WINE: -HOTFIX- fix Overwatch 2 from freezing on wine 7.12 and older" + # https://gitlab.winehq.org/wine/wine/-/merge_requests/1152 + patch -Np1 < ../patches/wine-hotfixes/pending/4bf9d2403f269e7f3595ad075a4afee9adbda51f.patch + ### END WINE HOTFIX SECTION ### diff --git a/patches/wine-hotfixes/pending/4bf9d2403f269e7f3595ad075a4afee9adbda51f.patch b/patches/wine-hotfixes/pending/4bf9d2403f269e7f3595ad075a4afee9adbda51f.patch new file mode 100644 index 0000000..56c6837 --- /dev/null +++ b/patches/wine-hotfixes/pending/4bf9d2403f269e7f3595ad075a4afee9adbda51f.patch @@ -0,0 +1,64 @@ +From 4bf9d2403f269e7f3595ad075a4afee9adbda51f Mon Sep 17 00:00:00 2001 +From: Alexandre Julliard +Date: Wed, 6 Jul 2022 12:46:50 +0200 +Subject: [PATCH] ntdll: Fix the return value of NtQueryKey for a short buffer. + +Signed-off-by: Alexandre Julliard +--- + dlls/ntdll/unix/registry.c | 8 ++------ + 2 files changed, 17 insertions(+), 7 deletions(-) + +diff --git a/dlls/ntdll/unix/registry.c b/dlls/ntdll/unix/registry.c +index 9c98bf48399f..428f8c9eb3ce 100644 +--- a/dlls/ntdll/unix/registry.c ++++ b/dlls/ntdll/unix/registry.c +@@ -268,7 +268,6 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + case KeyBasicInformation: + { + KEY_BASIC_INFORMATION keyinfo; +- fixed_size = (char *)keyinfo.Name - (char *)&keyinfo; + keyinfo.LastWriteTime.QuadPart = reply->modif; + keyinfo.TitleIndex = 0; + keyinfo.NameLength = reply->namelen; +@@ -279,7 +278,6 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + case KeyFullInformation: + { + KEY_FULL_INFORMATION keyinfo; +- fixed_size = (char *)keyinfo.Class - (char *)&keyinfo; + keyinfo.LastWriteTime.QuadPart = reply->modif; + keyinfo.TitleIndex = 0; + keyinfo.ClassLength = wine_server_reply_size(reply); +@@ -297,7 +295,6 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + case KeyNodeInformation: + { + KEY_NODE_INFORMATION keyinfo; +- fixed_size = (char *)keyinfo.Name - (char *)&keyinfo; + keyinfo.LastWriteTime.QuadPart = reply->modif; + keyinfo.TitleIndex = 0; + if (reply->namelen < wine_server_reply_size(reply)) +@@ -318,7 +315,6 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + case KeyNameInformation: + { + KEY_NAME_INFORMATION keyinfo; +- fixed_size = (char *)keyinfo.Name - (char *)&keyinfo; + keyinfo.NameLength = reply->namelen; + memcpy( info, &keyinfo, min( length, fixed_size ) ); + break; +@@ -327,7 +323,6 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + case KeyCachedInformation: + { + KEY_CACHED_INFORMATION keyinfo; +- fixed_size = sizeof(keyinfo); + keyinfo.LastWriteTime.QuadPart = reply->modif; + keyinfo.TitleIndex = 0; + keyinfo.SubKeys = reply->subkeys; +@@ -344,7 +339,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i + break; + } + *result_len = fixed_size + reply->total; +- if (length < *result_len) ret = STATUS_BUFFER_OVERFLOW; ++ if (length < fixed_size) ret = STATUS_BUFFER_TOO_SMALL; ++ else if (length < *result_len) ret = STATUS_BUFFER_OVERFLOW; + } + } + SERVER_END_REQ; diff --git a/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch b/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch new file mode 100644 index 0000000..09878b2 --- /dev/null +++ b/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0001-loader-Add-Keyboard-Layouts-registry-enteries.patch @@ -0,0 +1,261 @@ +From f2347ae7216626d248cfaf9445862561b2b5eef7 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 1 Jul 2019 09:58:55 +1000 +Subject: [PATCH] loader: Add Keyboard Layouts registry enteries. + +Signed-off-by: Alistair Leslie-Hughes +--- + loader/wine.inf.in | 209 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 209 insertions(+) + +diff --git a/loader/wine.inf.in b/loader/wine.inf.in +index ff601e41b26..6ffb8c56d87 100644 +--- a/loader/wine.inf.in ++++ b/loader/wine.inf.in +@@ -63,6 +63,7 @@ AddReg=\ + Debugger,\ + DirectX,\ + Fonts,\ ++ KeyboardLayouts,\ + MCI,\ + Misc,\ + OLE,\ +@@ -87,6 +88,7 @@ AddReg=\ + Debugger,\ + DirectX,\ + Fonts,\ ++ KeyboardLayouts,\ + MCI,\ + Misc,\ + OLE,\ +@@ -113,6 +115,7 @@ AddReg=\ + Debugger,\ + DirectX,\ + Fonts,\ ++ KeyboardLayouts,\ + MCI,\ + Misc,\ + OLE,\ +@@ -160,6 +163,7 @@ AddReg=\ + CurrentVersionWow64,\ + Debugger,\ + DirectX,\ ++ KeyboardLayouts,\ + MCI,\ + Misc,\ + Tapi,\ +@@ -597,6 +601,211 @@ HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoic + HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice,"ProgId",,"http" + HKCU,Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice,"ProgId",,"https" + ++[KeyboardLayouts] ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000401,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000402,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000404,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000412,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000413,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000416,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000418,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000420,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000423,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000424,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000425,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000426,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000427,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000428,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000429,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000432,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000437,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000438,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000439,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000440,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000442,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000444,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000445,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000446,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000447,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000448,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000449,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000450,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000451,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000452,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000453,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000454,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000045a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000045b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000045c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000461,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000463,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000465,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000468,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000046a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000046c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000046d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000046e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000046f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000470,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000474,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000475,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000480,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000481,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000485,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000488,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000492,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000081a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000082c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000083b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000843,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000850,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000085d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000085f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c04,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c0c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c1a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001004,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001009,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000100c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000105f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001404,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001809,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000201a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00004009,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010401,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010402,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010405,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010407,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001040a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001040e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010410,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010415,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010416,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010418,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010419,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010426,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010427,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010437,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010439,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001043a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001043b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010444,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010445,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010451,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010453,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001045a,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001045b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001045c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001045d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010465,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010480,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001080c,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001083b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010850,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011009,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001105f,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011809,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020401,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020405,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002040d,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020418,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020419,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002041e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020422,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020426,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020427,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002042b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002042e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020437,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020445,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002083b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0003041e,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0003042b,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030437,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040402,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040437,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050409,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050429,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00060408,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00070c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00080c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00090c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000a0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000b0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000c0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000d0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000e0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\000f0c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00100c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00110c00,,16 ++HKLM,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00120c00,,16 ++ + [OLE] + HKLM,"Software\Microsoft\OLE","EnableDCOM",,"Y" + HKLM,"Software\Microsoft\OLE","EnableRemoteConnect",,"N" +-- +2.35.1 + diff --git a/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch b/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch new file mode 100644 index 0000000..c18124c --- /dev/null +++ b/patches/wine-hotfixes/staging/loader-KeyboardLayouts/0002-user32-Improve-GetKeyboardLayoutList.patch @@ -0,0 +1,80 @@ +From c4a4d47fb07faee6ef6d20b967e21eafe6a60ea4 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Tue, 9 Jul 2019 14:13:28 +1000 +Subject: [PATCH] user32: Do not enumerate the registry in + GetKeyboardLayoutList(). + +This function returns the current list of *installed* Keyboard layouts +not the complete list from the registry. +--- + dlls/user32/input.c | 1 - + dlls/user32/tests/input.c | 35 +++++++++++++++++++++++++++++++++++ + dlls/win32u/input.c | 33 +-------------------------------- + 3 files changed, 36 insertions(+), 33 deletions(-) + +diff --git a/dlls/user32/input.c b/dlls/user32/input.c +index bb7477ed482..55ab8d246e7 100644 +--- a/dlls/user32/input.c ++++ b/dlls/user32/input.c +@@ -494,7 +494,6 @@ BOOL WINAPI UnloadKeyboardLayout( HKL layout ) + return FALSE; + } + +- + /*********************************************************************** + * EnableMouseInPointer (USER32.@) + */ +diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c +index f3b724e7010..a971e1ee776 100644 +--- a/dlls/win32u/input.c ++++ b/dlls/win32u/input.c +@@ -934,11 +934,7 @@ HKL WINAPI NtUserActivateKeyboardLayout( HKL layout, UINT flags ) + */ + UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts ) + { +- char buffer[4096]; +- KEY_NODE_INFORMATION *key_info = (KEY_NODE_INFORMATION *)buffer; +- KEY_VALUE_PARTIAL_INFORMATION *value_info = (KEY_VALUE_PARTIAL_INFORMATION *)buffer; +- DWORD count, tmp, i = 0; +- HKEY hkey, subkey; ++ DWORD count; + HKL layout; + + TRACE_(keyboard)( "size %d, layouts %p.\n", size, layouts ); +@@ -952,33 +948,6 @@ UINT WINAPI NtUserGetKeyboardLayoutList( INT size, HKL *layouts ) + if (size && layouts) + { + layouts[count - 1] = layout; +- if (count == size) return count; +- } +- +- if ((hkey = reg_open_key( NULL, keyboard_layouts_keyW, sizeof(keyboard_layouts_keyW) ))) +- { +- while (!NtEnumerateKey( hkey, i++, KeyNodeInformation, key_info, +- sizeof(buffer) - sizeof(WCHAR), &tmp )) +- { +- if (!(subkey = reg_open_key( hkey, key_info->Name, key_info->NameLength ))) continue; +- key_info->Name[key_info->NameLength / sizeof(WCHAR)] = 0; +- tmp = wcstoul( key_info->Name, NULL, 16 ); +- if (query_reg_ascii_value( subkey, "Layout Id", value_info, sizeof(buffer) ) && +- value_info->Type == REG_SZ) +- tmp = MAKELONG( LOWORD( tmp ), +- 0xf000 | (wcstoul( (const WCHAR *)value_info->Data, NULL, 16 ) & 0xfff) ); +- NtClose( subkey ); +- +- if (layout == UlongToHandle( tmp )) continue; +- +- count++; +- if (size && layouts) +- { +- layouts[count - 1] = UlongToHandle( tmp ); +- if (count == size) break; +- } +- } +- NtClose( hkey ); + } + + return count; +-- +2.37.2 + diff --git a/patches/wine-hotfixes/staging/wintrust-WTHelperGetProvCertFromChain/0001-wintrust-Add-parameter-check-in-WTHelperGetProvCertF.patch b/patches/wine-hotfixes/staging/wintrust-WTHelperGetProvCertFromChain/0001-wintrust-Add-parameter-check-in-WTHelperGetProvCertF.patch index 4b28fec..daf82ec 100644 --- a/patches/wine-hotfixes/staging/wintrust-WTHelperGetProvCertFromChain/0001-wintrust-Add-parameter-check-in-WTHelperGetProvCertF.patch +++ b/patches/wine-hotfixes/staging/wintrust-WTHelperGetProvCertFromChain/0001-wintrust-Add-parameter-check-in-WTHelperGetProvCertF.patch @@ -5,35 +5,9 @@ Subject: [PATCH] wintrust: Add parameter check in WTHelperGetProvCertFromChain Signed-off-by: Alistair Leslie-Hughes --- - dlls/wintrust/tests/softpub.c | 9 +++++++++ dlls/wintrust/wintrust_main.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) -diff --git a/dlls/wintrust/tests/softpub.c b/dlls/wintrust/tests/softpub.c -index 1f87234..8b02e77 100644 ---- a/dlls/wintrust/tests/softpub.c -+++ b/dlls/wintrust/tests/softpub.c -@@ -1300,6 +1300,14 @@ static void test_get_known_usages(void) - "expected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError()); - } - -+static void test_WTHelperGetProvCertFromChain(void) -+{ -+ CRYPT_PROVIDER_CERT *cert; -+ -+ cert = WTHelperGetProvCertFromChain(NULL, 0); -+ ok(!cert, "got certificate\n"); -+} -+ - START_TEST(softpub) - { - InitFunctionPtrs(); -@@ -1308,4 +1316,5 @@ START_TEST(softpub) - test_wintrust(); - test_wintrust_digest(); - test_get_known_usages(); -+ test_WTHelperGetProvCertFromChain(); - } diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c index 58e3ac3..bb52282 100644 --- a/dlls/wintrust/wintrust_main.c diff --git a/proton-wine b/proton-wine index 27d3440..4c06258 160000 --- a/proton-wine +++ b/proton-wine @@ -1 +1 @@ -Subproject commit 27d3440bc8ef874685b8ce646c6f94e869d4db4a +Subproject commit 4c06258745061eeef09c9063d65527ff483fc4cc