mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 05:35:40 +00:00
[SERVICES]
ScmWriteDependencies: - Fixed an off-by-one bug. This bug caused a wrong calculation of the 'DependOnGroup' value data length. Group dependencies were not written properly to the registry. - Write 'DependOnService' and 'DependOnService' values to the registry only if the dependency strings are not empty. Delete a value if the corresponding dependency string is empty. This fixes another winetest. svn path=/trunk/; revision=51172
This commit is contained in:
parent
828d04705a
commit
4288ba6306
1 changed files with 29 additions and 13 deletions
|
@ -125,7 +125,7 @@ ScmWriteDependencies(HKEY hServiceKey,
|
|||
lpDst = lpGroupDeps;
|
||||
while (*lpSrc != 0)
|
||||
{
|
||||
dwLength = wcslen(lpSrc);
|
||||
dwLength = wcslen(lpSrc) + 1;
|
||||
if (*lpSrc == SC_GROUP_IDENTIFIERW)
|
||||
{
|
||||
lpSrc++;
|
||||
|
@ -157,21 +157,37 @@ ScmWriteDependencies(HKEY hServiceKey,
|
|||
*lpDst = 0;
|
||||
dwServiceLength++;
|
||||
|
||||
dwError = RegSetValueExW(hServiceKey,
|
||||
L"DependOnGroup",
|
||||
0,
|
||||
REG_MULTI_SZ,
|
||||
(LPBYTE)lpGroupDeps,
|
||||
dwGroupLength * sizeof(WCHAR));
|
||||
if (dwGroupLength > 1)
|
||||
{
|
||||
dwError = RegSetValueExW(hServiceKey,
|
||||
L"DependOnGroup",
|
||||
0,
|
||||
REG_MULTI_SZ,
|
||||
(LPBYTE)lpGroupDeps,
|
||||
dwGroupLength * sizeof(WCHAR));
|
||||
}
|
||||
else
|
||||
{
|
||||
RegDeleteValueW(hServiceKey,
|
||||
L"DependOnGroup");
|
||||
}
|
||||
|
||||
if (dwError == ERROR_SUCCESS)
|
||||
{
|
||||
dwError = RegSetValueExW(hServiceKey,
|
||||
L"DependOnService",
|
||||
0,
|
||||
REG_MULTI_SZ,
|
||||
(LPBYTE)lpServiceDeps,
|
||||
dwServiceLength * sizeof(WCHAR));
|
||||
if (dwServiceLength > 1)
|
||||
{
|
||||
dwError = RegSetValueExW(hServiceKey,
|
||||
L"DependOnService",
|
||||
0,
|
||||
REG_MULTI_SZ,
|
||||
(LPBYTE)lpServiceDeps,
|
||||
dwServiceLength * sizeof(WCHAR));
|
||||
}
|
||||
else
|
||||
{
|
||||
RegDeleteValueW(hServiceKey,
|
||||
L"DependOnService");
|
||||
}
|
||||
}
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, lpGroupDeps);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue