advapi32: Avoid slashes and backslashes in user names.

This commit is contained in:
Alexandre Julliard 2007-02-28 14:51:04 +01:00
parent 2d87a7bb7b
commit ec636f151b
1 changed files with 7 additions and 1 deletions

View File

@ -84,7 +84,7 @@ BOOL WINAPI
GetUserNameW( LPWSTR lpszName, LPDWORD lpSize ) GetUserNameW( LPWSTR lpszName, LPDWORD lpSize )
{ {
const char *name = wine_get_user_name(); const char *name = wine_get_user_name();
DWORD len = MultiByteToWideChar( CP_UNIXCP, 0, name, -1, NULL, 0 ); DWORD i, len = MultiByteToWideChar( CP_UNIXCP, 0, name, -1, NULL, 0 );
if (len > *lpSize) if (len > *lpSize)
{ {
@ -95,6 +95,12 @@ GetUserNameW( LPWSTR lpszName, LPDWORD lpSize )
*lpSize = len; *lpSize = len;
MultiByteToWideChar( CP_UNIXCP, 0, name, -1, lpszName, len ); MultiByteToWideChar( CP_UNIXCP, 0, name, -1, lpszName, len );
/* Word uses the user name to create named mutexes and file mappings,
* and backslashes in the name cause the creation to fail.
*/
for (i = 0; lpszName[i]; i++)
if (lpszName[i] == '\\' || lpszName[i] == '/') lpszName[i] = '_';
return TRUE; return TRUE;
} }