From 2c63cf58eaeec9495c8aa174d62fe1c31aad3e74 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 14 Dec 2010 13:49:14 +0100 Subject: [PATCH] user32: Don't call GetModuleFileNameW under the user lock. --- dlls/user32/cursoricon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c index eeaae7a3b3c..356dbd8e946 100644 --- a/dlls/user32/cursoricon.c +++ b/dlls/user32/cursoricon.c @@ -1682,6 +1682,7 @@ BOOL WINAPI GetIconInfoExA( HICON icon, ICONINFOEXA *info ) BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info ) { struct cursoricon_object *ptr; + HMODULE module; BOOL ret = TRUE; if (info->cbSize != sizeof(*info)) @@ -1707,7 +1708,6 @@ BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info ) info->szResName[0] = 0; if (ptr->module) { - GetModuleFileNameW( ptr->module, info->szModName, MAX_PATH ); if (IS_INTRESOURCE( ptr->resname )) info->wResID = LOWORD( ptr->resname ); else lstrcpynW( info->szResName, ptr->resname, MAX_PATH ); } @@ -1717,7 +1717,9 @@ BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info ) DeleteObject( info->hbmColor ); ret = FALSE; } + module = ptr->module; release_icon_ptr( icon, ptr ); + if (ret && module) GetModuleFileNameW( module, info->szModName, MAX_PATH ); return ret; }