Alexandre Julliard : advapi32: Avoid slashes and backslashes in user names.
Module: wine Branch: master Commit: ec636f151b78c3d5bc8e8d0b33fcca1465574a3a URL: http://source.winehq.org/git/wine.git/?a=commit;h=ec636f151b78c3d5bc8e8d0b33... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Feb 28 14:51:04 2007 +0100 advapi32: Avoid slashes and backslashes in user names. --- dlls/advapi32/advapi.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/advapi32/advapi.c b/dlls/advapi32/advapi.c index fbcb1a6..126f8d1 100644 --- a/dlls/advapi32/advapi.c +++ b/dlls/advapi32/advapi.c @@ -84,7 +84,7 @@ BOOL WINAPI GetUserNameW( LPWSTR lpszName, LPDWORD lpSize ) { 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) { @@ -95,6 +95,12 @@ GetUserNameW( LPWSTR lpszName, LPDWORD lpSize ) *lpSize = 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; }
participants (1)
-
Alexandre Julliard