shell32: Fix an uninitialized memory access in SHGetFileInfoW.

If we are passed SHGFI_PIDL, szFullPath is not initialized. If we're passed
the flags PIDL, USEFILEATTRIBUTES, and an icon flag, we will try to use the
uninitialized filename to get the icon. Since the test claims that the
function should return an icon in this case, and we cannot always convert
a pidl to a path, we should just use the pidl.
This commit is contained in:
Vincent Povirk 2009-12-13 18:59:13 -06:00 committed by Alexandre Julliard
parent 3ac34f7416
commit a8c2d4b5bc
1 changed files with 1 additions and 1 deletions

View File

@ -565,7 +565,7 @@ DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
/* get icon index (or load icon)*/
if (SUCCEEDED(hr) && (flags & (SHGFI_ICON | SHGFI_SYSICONINDEX)))
{
if (flags & SHGFI_USEFILEATTRIBUTES)
if (flags & SHGFI_USEFILEATTRIBUTES && !(flags & SHGFI_PIDL))
{
WCHAR sTemp [MAX_PATH];
WCHAR * szExt;