GetVersion* patch

James Juran jamesjuran at alumni.psu.edu
Wed May 23 00:22:26 CDT 2001


For some strange reason notepad.exe tells GetVersionExW the structure
size is 156, when it's really only 148.  It is valid to do this on
NT 4.0 though.

* James Juran <jamesjuran at alumni.psu.edu>
Only fail with ERROR_INSUFFICIENT_BUFFER if the
structure size is actually too small.

Index: misc/version.c
===================================================================
RCS file: /home/wine/wine/misc/version.c,v
retrieving revision 1.40
diff -u -r1.40 version.c
--- misc/version.c	2001/05/09 17:09:04	1.40
+++ misc/version.c	2001/05/23 05:16:03
@@ -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));




More information about the wine-patches mailing list