Owen Rudge : user32: Correct return value when buffer too short in GetUserObjectInformation.

Alexandre Julliard julliard at winehq.org
Mon May 14 14:26:05 CDT 2012


Module: wine
Branch: master
Commit: 83f67ff998097c92cb5d3eef128969d25c6588e5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=83f67ff998097c92cb5d3eef128969d25c6588e5

Author: Owen Rudge <owen at owenrudge.net>
Date:   Mon May 14 15:23:29 2012 +0100

user32: Correct return value when buffer too short in GetUserObjectInformation.

---

 dlls/user32/tests/winstation.c |    8 ++++----
 dlls/user32/winstation.c       |    6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/user32/tests/winstation.c b/dlls/user32/tests/winstation.c
index e3836d3..bd042f2 100644
--- a/dlls/user32/tests/winstation.c
+++ b/dlls/user32/tests/winstation.c
@@ -396,7 +396,7 @@ static void test_getuserobjectinformation(void)
     ret = GetUserObjectInformationA(desk, UOI_NAME, NULL, 0, &size);
 
     ok(!ret, "GetUserObjectInformationA returned %x", ret);
-    todo_wine ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
+    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
     todo_wine ok(size == 22, "size is set to %d\n", size); /* Windows returns Unicode length (11*2) */
 
     /* Get string */
@@ -416,7 +416,7 @@ static void test_getuserobjectinformation(void)
     ret = GetUserObjectInformationW(desk, UOI_NAME, NULL, 0, &size);
 
     ok(!ret, "GetUserObjectInformationW returned %x", ret);
-    todo_wine ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
+    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
     ok(size == 22, "size is set to %d\n", size);  /* 22 bytes in 'foobarTest\0' in Unicode */
 
     /* Get string (Unicode) */
@@ -438,7 +438,7 @@ static void test_getuserobjectinformation(void)
     ret = GetUserObjectInformationA(desk, UOI_TYPE, NULL, 0, &size);
 
     ok(!ret, "GetUserObjectInformationA returned %x", ret);
-    todo_wine ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
+    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
     todo_wine ok(size == 16, "size is set to %d\n", size); /* Windows returns Unicode length (8*2) */
 
     /* Get string */
@@ -458,7 +458,7 @@ static void test_getuserobjectinformation(void)
     ret = GetUserObjectInformationW(desk, UOI_TYPE, NULL, 0, &size);
 
     ok(!ret, "GetUserObjectInformationW returned %x", ret);
-    todo_wine ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
+    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "LastError is set to %08x\n", GetLastError());
     ok(size == 16, "size is set to %d\n", size);  /* 16 bytes in 'Desktop\0' in Unicode */
 
     /* Get string (Unicode) */
diff --git a/dlls/user32/winstation.c b/dlls/user32/winstation.c
index 8126b31..770245d 100644
--- a/dlls/user32/winstation.c
+++ b/dlls/user32/winstation.c
@@ -484,7 +484,7 @@ BOOL WINAPI GetUserObjectInformationA( HANDLE handle, INT index, LPVOID info, DW
         if (needed) *needed = lenA;
         if (lenA > len)
         {
-            SetLastError( ERROR_MORE_DATA );
+            SetLastError( ERROR_INSUFFICIENT_BUFFER );
             return FALSE;
         }
         if (info) WideCharToMultiByte( CP_ACP, 0, buffer, -1, info, len, NULL, NULL );
@@ -541,7 +541,7 @@ BOOL WINAPI GetUserObjectInformationW( HANDLE handle, INT index, LPVOID info, DW
                 if (needed) *needed = size;
                 if (len < size)
                 {
-                    SetLastError( ERROR_MORE_DATA );
+                    SetLastError( ERROR_INSUFFICIENT_BUFFER );
                     ret = FALSE;
                 }
                 else memcpy( info, reply->is_desktop ? desktopW : winstationW, size );
@@ -567,7 +567,7 @@ BOOL WINAPI GetUserObjectInformationW( HANDLE handle, INT index, LPVOID info, DW
                     if (needed) *needed = size;
                     if (len < size)
                     {
-                        SetLastError( ERROR_MORE_DATA );
+                        SetLastError( ERROR_INSUFFICIENT_BUFFER );
                         ret = FALSE;
                     }
                     else memcpy( info, buffer, size );




More information about the wine-cvs mailing list