Only fail with ERROR_INSUFFICIENT_BUFFER if the structure size is
actually too small.
diff --git a/misc/version.c b/misc/version.c
index d168f88..807f434 100644
--- a/misc/version.c
+++ b/misc/version.c
@@ -396,7 +396,7 @@
BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16 *v)
{
WINDOWS_VERSION ver = VERSION_GetVersion();
- if (v->dwOSVersionInfoSize != sizeof(OSVERSIONINFO16))
+ if (v->dwOSVersionInfoSize < sizeof(OSVERSIONINFO16))
{
WARN("wrong OSVERSIONINFO size from app\n");
SetLastError(ERROR_INSUFFICIENT_BUFFER);
@@ -417,7 +417,7 @@
BOOL WINAPI GetVersionExA(OSVERSIONINFOA *v)
{
WINDOWS_VERSION ver = VERSION_GetVersion();
- if (v->dwOSVersionInfoSize != sizeof(OSVERSIONINFOA))
+ if (v->dwOSVersionInfoSize < sizeof(OSVERSIONINFOA))
{
WARN("wrong OSVERSIONINFO size from app (got: %ld, expected: %d)\n",
v->dwOSVersionInfoSize, sizeof(OSVERSIONINFOA));
@@ -440,7 +440,7 @@
{
WINDOWS_VERSION ver = VERSION_GetVersion();
- if (v->dwOSVersionInfoSize!=sizeof(OSVERSIONINFOW))
+ if (v->dwOSVersionInfoSize < sizeof(OSVERSIONINFOW))
{
WARN("wrong OSVERSIONINFO size from app (got: %ld, expected: %d)\n",
v->dwOSVersionInfoSize, sizeof(OSVERSIONINFOW));