mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Remove incorrect patch for RtlVerifyVersionInfo, add tests for VerifyVersionInfo.
This commit is contained in:
parent
748696d2bd
commit
5420552434
@ -37,11 +37,6 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
===================================
|
||||
|
||||
**Bugfixes and features included in the next upcoming release [1]:**
|
||||
|
||||
* Fix condition handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
|
||||
|
||||
|
||||
**Bugs fixed in Wine Staging 1.7.32 [108]:**
|
||||
|
||||
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](https://bugs.winehq.org/show_bug.cgi?id=21767))
|
||||
|
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -1,5 +1,5 @@
|
||||
wine-compholio (1.7.33) UNRELEASED; urgency=low
|
||||
* Added patch to fix condition handling in RtlVerifyVersionInfo.
|
||||
* Added additional tests for VerifyVersionInfoA.
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 30 Nov 2014 18:19:00 +0100
|
||||
|
||||
wine-compholio (1.7.32) unstable; urgency=low
|
||||
|
@ -52,6 +52,7 @@ PATCHLIST := \
|
||||
kernel32-Named_Pipe.ok \
|
||||
kernel32-Profile.ok \
|
||||
kernel32-UTF7_Support.ok \
|
||||
kernel32-VerifyVersionInfo.ok \
|
||||
libs-Unicode_Collation.ok \
|
||||
libwine-BSD_mmap_fixed.ok \
|
||||
msvcp90-basic_string_wchar_dtor.ok \
|
||||
@ -70,7 +71,6 @@ PATCHLIST := \
|
||||
ntdll-NtQuerySection.ok \
|
||||
ntdll-NtSetLdtEntries.ok \
|
||||
ntdll-Pipe_SpecialCharacters.ok \
|
||||
ntdll-RtlVerifyVersionInfo.ok \
|
||||
ntdll-ThreadTime.ok \
|
||||
ntdll-User_Shared_Data.ok \
|
||||
ntdll-WRITECOPY.ok \
|
||||
@ -740,6 +740,18 @@ kernel32-UTF7_Support.ok:
|
||||
echo '+ { "Alex Henrie", "kernel32/tests: Add tests for UTF-7 conversion.", 1 },'; \
|
||||
) > kernel32-UTF7_Support.ok
|
||||
|
||||
# Patchset kernel32-VerifyVersionInfo
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/version.c
|
||||
# |
|
||||
.INTERMEDIATE: kernel32-VerifyVersionInfo.ok
|
||||
kernel32-VerifyVersionInfo.ok:
|
||||
$(call APPLY_FILE,kernel32-VerifyVersionInfo/0001-kernel32-tests-Add-additional-tests-for-VerifyVersio.patch)
|
||||
@( \
|
||||
echo '+ { "Sebastian Lackner", "kernel32/tests: Add additional tests for VerifyVersionInfoA.", 1 },'; \
|
||||
) > kernel32-VerifyVersionInfo.ok
|
||||
|
||||
# Patchset libs-Unicode_Collation
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -1064,21 +1076,6 @@ ntdll-Pipe_SpecialCharacters.ok:
|
||||
echo '+ { "Michael Müller", "ntdll: Allow special characters in pipe names.", 1 },'; \
|
||||
) > ntdll-Pipe_SpecialCharacters.ok
|
||||
|
||||
# Patchset ntdll-RtlVerifyVersionInfo
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#36143] Fix condition handling in RtlVerifyVersionInfo
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/version.c
|
||||
# |
|
||||
.INTERMEDIATE: ntdll-RtlVerifyVersionInfo.ok
|
||||
ntdll-RtlVerifyVersionInfo.ok:
|
||||
$(call APPLY_FILE,ntdll-RtlVerifyVersionInfo/0001-ntdll-Fix-condition-handling-in-RtlVerifyVersionInfo.patch)
|
||||
@( \
|
||||
echo '+ { "Sebastian Lackner", "ntdll: Fix condition handling in RtlVerifyVersionInfo.", 1 },'; \
|
||||
) > ntdll-RtlVerifyVersionInfo.ok
|
||||
|
||||
# Patchset ntdll-ThreadTime
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -0,0 +1,79 @@
|
||||
From 6b6c6c74980d2e3b5b3a27544492a6ed46756ddc Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 30 Nov 2014 22:27:01 +0100
|
||||
Subject: kernel32/tests: Add additional tests for VerifyVersionInfoA.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/version.c | 56 +++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 56 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c
|
||||
index a47e52c..7fe33c4 100644
|
||||
--- a/dlls/kernel32/tests/version.c
|
||||
+++ b/dlls/kernel32/tests/version.c
|
||||
@@ -353,6 +353,62 @@ static void test_VerifyVersionInfo(void)
|
||||
pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER_EQUAL));
|
||||
ok(ret || broken(!ret) /* some win2k */, "VerifyVersionInfoA failed with error %d\n", GetLastError());
|
||||
|
||||
+ /* tests for condition mask */
|
||||
+
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ info.wServicePackMajor++;
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL), VER_SERVICEPACKMAJOR, VER_LESS));
|
||||
+ ok(!ret, "VerifyVersionInfoA succeeded\n");
|
||||
+ ok(error == ERROR_OLD_WIN_VERSION || broken(error == ERROR_BAD_ARGUMENTS) /* some win2k */,
|
||||
+ "VerifyVersionInfoA should have failed with ERROR_OLD_WIN_VERSION instead of %d\n", error);
|
||||
+
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ info.dwMajorVersion--;
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR, VER_LESS));
|
||||
+ ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
|
||||
+
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ info.wServicePackMajor++;
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR, VER_LESS));
|
||||
+ ok(!ret, "VerifyVersionInfoA succeeded\n");
|
||||
+ ok(error == ERROR_OLD_WIN_VERSION || broken(error == ERROR_BAD_ARGUMENTS) /* some win2k */,
|
||||
+ "VerifyVersionInfoA should have failed with ERROR_OLD_WIN_VERSION instead of %d\n", error);
|
||||
+
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR, VER_LESS));
|
||||
+ ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
|
||||
+
|
||||
+ if (servicepack)
|
||||
+ {
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ info.wServicePackMajor--;
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL), VER_SERVICEPACKMAJOR, VER_GREATER));
|
||||
+ ok(!ret, "VerifyVersionInfoA succeeded\n");
|
||||
+ ok(error == ERROR_OLD_WIN_VERSION || broken(error == ERROR_BAD_ARGUMENTS) /* some win2k */,
|
||||
+ "VerifyVersionInfoA should have failed with ERROR_OLD_WIN_VERSION instead of %d\n", error);
|
||||
+
|
||||
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
+ GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
+ info.dwMajorVersion++;
|
||||
+ info.wServicePackMajor--;
|
||||
+ ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
|
||||
+ pVerSetConditionMask(pVerSetConditionMask(0, VER_MAJORVERSION, VER_LESS), VER_SERVICEPACKMAJOR, VER_EQUAL));
|
||||
+ ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
|
||||
+ }
|
||||
+
|
||||
/* test bad dwOSVersionInfoSize */
|
||||
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXA);
|
||||
GetVersionExA((OSVERSIONINFOA *)&info);
|
||||
--
|
||||
2.1.3
|
||||
|
@ -1,60 +0,0 @@
|
||||
From d4fcd702f9d7eda8209511b5f6522be544b794c4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 30 Nov 2014 18:18:23 +0100
|
||||
Subject: ntdll: Fix condition handling in RtlVerifyVersionInfo.
|
||||
|
||||
---
|
||||
dlls/ntdll/version.c | 15 +++++----------
|
||||
1 file changed, 5 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/version.c b/dlls/ntdll/version.c
|
||||
index a6340eb..fa40613 100644
|
||||
--- a/dlls/ntdll/version.c
|
||||
+++ b/dlls/ntdll/version.c
|
||||
@@ -732,38 +732,33 @@ NTSTATUS WINAPI RtlVerifyVersionInfo( const RTL_OSVERSIONINFOEXW *info,
|
||||
|
||||
if(dwTypeMask & (VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR))
|
||||
{
|
||||
- unsigned char condition = 0;
|
||||
+ unsigned char condition;
|
||||
BOOLEAN do_next_check = TRUE;
|
||||
|
||||
if(dwTypeMask & VER_MAJORVERSION)
|
||||
- condition = dwlConditionMask >> 1*3 & 0x07;
|
||||
- else if(dwTypeMask & VER_MINORVERSION)
|
||||
- condition = dwlConditionMask >> 0*3 & 0x07;
|
||||
- else if(dwTypeMask & VER_SERVICEPACKMAJOR)
|
||||
- condition = dwlConditionMask >> 5*3 & 0x07;
|
||||
- else if(dwTypeMask & VER_SERVICEPACKMINOR)
|
||||
- condition = dwlConditionMask >> 4*3 & 0x07;
|
||||
-
|
||||
- if(dwTypeMask & VER_MAJORVERSION)
|
||||
{
|
||||
+ condition = dwlConditionMask >> 1*3 & 0x07;
|
||||
status = version_compare_values(ver.dwMajorVersion, info->dwMajorVersion, condition);
|
||||
do_next_check = (ver.dwMajorVersion == info->dwMajorVersion) &&
|
||||
((condition != VER_EQUAL) || (status == STATUS_SUCCESS));
|
||||
}
|
||||
if((dwTypeMask & VER_MINORVERSION) && do_next_check)
|
||||
{
|
||||
+ condition = dwlConditionMask >> 0*3 & 0x07;
|
||||
status = version_compare_values(ver.dwMinorVersion, info->dwMinorVersion, condition);
|
||||
do_next_check = (ver.dwMinorVersion == info->dwMinorVersion) &&
|
||||
((condition != VER_EQUAL) || (status == STATUS_SUCCESS));
|
||||
}
|
||||
if((dwTypeMask & VER_SERVICEPACKMAJOR) && do_next_check)
|
||||
{
|
||||
+ condition = dwlConditionMask >> 5*3 & 0x07;
|
||||
status = version_compare_values(ver.wServicePackMajor, info->wServicePackMajor, condition);
|
||||
do_next_check = (ver.wServicePackMajor == info->wServicePackMajor) &&
|
||||
((condition != VER_EQUAL) || (status == STATUS_SUCCESS));
|
||||
}
|
||||
if((dwTypeMask & VER_SERVICEPACKMINOR) && do_next_check)
|
||||
{
|
||||
+ condition = dwlConditionMask >> 4*3 & 0x07;
|
||||
status = version_compare_values(ver.wServicePackMinor, info->wServicePackMinor, condition);
|
||||
}
|
||||
|
||||
--
|
||||
2.1.3
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [36143] Fix condition handling in RtlVerifyVersionInfo
|
Loading…
x
Reference in New Issue
Block a user