https://git.reactos.org/?p=reactos.git;a=commitdiff;h=19e9a441183d907540bb2…
commit 19e9a441183d907540bb22f8711db281334467b9
Author:     Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Sun Aug 26 22:38:27 2018 +0200
Commit:     Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Mon Aug 27 11:58:29 2018 +0200
    [SHELL32] Check the result from PathUnExpandEnvStringsW
---
 dll/win32/shell32/CShellLink.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dll/win32/shell32/CShellLink.cpp b/dll/win32/shell32/CShellLink.cpp
index 2b6b20020d..5afc4b715e 100644
--- a/dll/win32/shell32/CShellLink.cpp
+++ b/dll/win32/shell32/CShellLink.cpp
@@ -1856,6 +1856,7 @@ HRESULT STDMETHODCALLTYPE CShellLink::SetIconLocation(LPCWSTR
pszIconPath, INT i
 {
     HRESULT hr = E_FAIL;
     WCHAR szUnExpIconPath[MAX_PATH];
+    BOOL bSuccess;
     TRACE("(%p)->(path=%s iicon=%u)\n", this, debugstr_w(pszIconPath),
iIcon);
@@ -1875,8 +1876,8 @@ HRESULT STDMETHODCALLTYPE CShellLink::SetIconLocation(LPCWSTR
pszIconPath, INT i
          */
         // FIXME:
http://stackoverflow.com/questions/2976489/ishelllinkseticonlocation-transl…
         // if (PathFullyUnExpandEnvStringsW(pszIconPath, szUnExpIconPath,
_countof(szUnExpIconPath)))
-        PathUnExpandEnvStringsW(pszIconPath, szUnExpIconPath, _countof(szUnExpIconPath));
-        if (wcscmp(pszIconPath, szUnExpIconPath) != 0)
+        bSuccess = PathUnExpandEnvStringsW(pszIconPath, szUnExpIconPath,
_countof(szUnExpIconPath));
+        if (bSuccess && wcscmp(pszIconPath, szUnExpIconPath) != 0)
         {
             /* Unexpansion succeeded, so we need an icon environment block */
             EXP_SZ_LINK buffer;