[SETUPAPI]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 22 May 2016 19:09:49 +0000 (19:09 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 22 May 2016 19:09:49 +0000 (19:09 +0000)
- Fix Buffer overflow in FixupServiceBinaryPath

svn path=/trunk/; revision=71379

reactos/dll/win32/setupapi/install.c

index bfa6767..8408cb6 100644 (file)
@@ -1748,10 +1748,8 @@ static VOID FixupServiceBinaryPath(
         /* Handle Win32-services differently */
         if (ServiceType & SERVICE_WIN32)
         {
-            Win32Length = (ServiceLength -
-                RosDirLength - 1 + 13) * sizeof(WCHAR);
-            /* -1 to not count the separator after C:\ReactOS
-               wcslen(L"%SystemRoot%\\") = 13*sizeof(wchar_t) */
+            Win32Length = (ServiceLength - RosDirLength) * sizeof(WCHAR)
+                        - sizeof(L'\\') + sizeof(L"%SystemRoot%\\");
             Buffer = MyMalloc(Win32Length);
 
             wcscpy(Buffer, L"%SystemRoot%\\");