Author: mjansen
Date: Tue Aug 15 12:37:25 2017
New Revision: 75552

URL: http://svn.reactos.org/svn/reactos?rev=75552&view=rev
Log:
[ACPPAGE] Do not allow shims to be applied to files in System32/WinSxs.
CORE-13618

Modified:
    trunk/reactos/dll/shellext/acppage/CLayerUIPropPage.cpp

Modified: trunk/reactos/dll/shellext/acppage/CLayerUIPropPage.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/acppage/CLayerUIPropPage.cpp?rev=75552&r1=75551&r2=75552&view=diff
==============================================================================
--- trunk/reactos/dll/shellext/acppage/CLayerUIPropPage.cpp     [iso-8859-1] 
(original)
+++ trunk/reactos/dll/shellext/acppage/CLayerUIPropPage.cpp     [iso-8859-1] 
Tue Aug 15 12:37:25 2017
@@ -158,6 +158,27 @@
         }
         return InitFile(Buffer);
     }
+
+    CString tmp;
+    if (tmp.GetEnvironmentVariable(L"SystemRoot"))
+    {
+        tmp += L"\\System32";
+        if (ExpandedFilename.GetLength() >= tmp.GetLength() &&
+            ExpandedFilename.Left(tmp.GetLength()).MakeLower() == 
tmp.MakeLower())
+        {
+            ACDBG(L"Ignoring System32: %s\r\n", (PCWSTR)ExpandedFilename);
+            return E_FAIL;
+        }
+        tmp.GetEnvironmentVariable(L"SystemRoot");
+        tmp += L"\\WinSxs";
+        if (ExpandedFilename.GetLength() >= tmp.GetLength() &&
+            ExpandedFilename.Left(tmp.GetLength()).MakeLower() == 
tmp.MakeLower())
+        {
+            ACDBG(L"Ignoring WinSxs: %s\r\n", (PCWSTR)ExpandedFilename);
+            return E_FAIL;
+        }
+    }
+
     for (size_t n = 0; g_AllowedExtensions[n]; ++n)
     {
         if (!wcsicmp(g_AllowedExtensions[n], pwszExt))


Reply via email to