Author: janderwald Date: Wed Oct 29 11:19:09 2008 New Revision: 37067
URL: http://svn.reactos.org/svn/reactos?rev=37067&view=rev Log: - Improve error checking - Remove extensions which should be hidden (*.lnk) - CID 82
Modified: trunk/reactos/dll/win32/shell32/shfldr_admintools.c
Modified: trunk/reactos/dll/win32/shell32/shfldr_admintools.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shfldr_ad... ============================================================================== --- trunk/reactos/dll/win32/shell32/shfldr_admintools.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shfldr_admintools.c [iso-8859-1] Wed Oct 29 11:19:09 2008 @@ -424,8 +424,8 @@ if ((GET_SHGDN_RELATION (dwFlags) == SHGDN_NORMAL) && (GET_SHGDN_FOR (dwFlags) & SHGDN_FORPARSING)) wcscpy(pszPath, This->szTarget); - else - HCR_GetClassNameW(&CLSID_AdminFolderShortcut, pszPath, MAX_PATH); + else if (!HCR_GetClassNameW(&CLSID_AdminFolderShortcut, pszPath, MAX_PATH)) + hr = E_FAIL; } else if (_ILIsPidlSimple(pidl)) { @@ -436,12 +436,23 @@ wcscpy(pszPath, This->szTarget); pOffset = PathAddBackslashW(pszPath); if (pOffset) - _ILSimpleGetTextW(pidl, pOffset, MAX_PATH + 1 - (pOffset - pszPath)); + { + if (!_ILSimpleGetTextW(pidl, pOffset, MAX_PATH + 1 - (pOffset - pszPath))) + hr = E_FAIL; + } + else + hr = E_FAIL; } else - { - _ILSimpleGetTextW(pidl, pszPath, MAX_PATH + 1); - } + { + if (_ILSimpleGetTextW(pidl, pszPath, MAX_PATH + 1)) + { + if (SHELL_FS_HideExtension(pszPath)) + PathRemoveExtensionW(pszPath); + } + else + hr = E_FAIL; + } } else if (_ILIsSpecialFolder(pidl)) { @@ -449,10 +460,10 @@
if (bSimplePidl) { - _ILSimpleGetTextW(pidl, pszPath, MAX_PATH); - } - - if ((dwFlags & SHGDN_FORPARSING) && !bSimplePidl) + if (!_ILSimpleGetTextW(pidl, pszPath, MAX_PATH)) + hr = E_FAIL; + } + else if ((dwFlags & SHGDN_FORPARSING) && !bSimplePidl) { int len = 0;
@@ -473,11 +484,11 @@ { strRet->uType = STRRET_WSTR; strRet->u.pOleStr = pszPath; + TRACE ("-- (%p)->(%s,0x%08x)\n", This, debugstr_w(strRet->u.pOleStr), hr); } else CoTaskMemFree(pszPath);
- TRACE ("-- (%p)->(%s,0x%08x)\n", This, debugstr_w(strRet->u.pOleStr), hr); return hr; }