[Bug 27339] improper last error code set by GetUserNameW
wine-bugs at winehq.org
wine-bugs at winehq.org
Tue May 31 12:17:15 CDT 2011
http://bugs.winehq.org/show_bug.cgi?id=27339
--- Comment #3 from kevin.hendricks at sympatico.ca 2011-05-31 12:17:14 CDT ---
Hi,
That same problem exists in GetUserNameA in that same file.
If I set too small a buffer and invoke GetUserNameA under Windows, it returns
122 "ERROR_INSUFFICIENT_BUFFER" and not 234 "ERROR_MORE_DATA".
Here is the problem snippet of code from GetUserNameA
53 BOOL WINAPI
54 GetUserNameA( LPSTR lpszName, LPDWORD lpSize )
55 {
...
65 ret = GetUserNameW( buffer, &sizeW );
66 if (ret)
67 {
68 if (!(*lpSize = WideCharToMultiByte( CP_ACP, 0, buffer, -1,
lpszName, *lpSize, NULL, NULL )))
69 {
70 *lpSize = WideCharToMultiByte( CP_ACP, 0, buffer, -1, NULL, 0,
NULL, NULL );
71 SetLastError( ERROR_MORE_DATA );
72 ret = FALSE;
73 }
74 }
75 else *lpSize = sizeW * 2;
76 HeapFree( GetProcessHeap(), 0, buffer );
77 return ret;
78 }
GetUserNameA knows to loop and double its own internal buffer size until it
holds the username generated by GetUserNameW but still has to return
"ERROR_INSUFFICIENT_BUFFER" to its caller to tell it to grow the size of its
buffer to match otherwise there is no way to return the username value to the
caller.
So "ERROR_MORE_DATA" should be changed to "ERROR_INSUFFICIENT_BUFFER" here as
well to match what GetLastError on Windows returns for GetUserNameA.
If you need an modified python test program that shows this error, please let
me know and I will attach it.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list