--- trunk/reactos/lib/setupapi/install.c 2005-11-11 22:31:50 UTC (rev 19154)
+++ trunk/reactos/lib/setupapi/install.c 2005-11-11 22:34:01 UTC (rev 19155)
@@ -1218,7 +1218,7 @@
SetLastError(rc);
goto cleanup;
}
- else if (dwRegType != REG_BINARY || bufferSize % sizeof(DWORD) != 0)
+ else if (dwRegType != REG_BINARY || bufferSize == 0 || bufferSize % sizeof(DWORD) != 0)
{
SetLastError(ERROR_GEN_FAILURE);
goto cleanup;
@@ -1238,13 +1238,15 @@
lpLoadOrderGroup,
NULL,
NULL,
- (flags & SPSVCINST_TAGTOFRONT) ? (BYTE*)&GroupOrder[1] : (BYTE*)&GroupOrder[0],
+ (BYTE*)GroupOrder,
&bufferSize);
if (rc != ERROR_SUCCESS)
{
SetLastError(rc);
goto cleanup;
}
+ if (flags & SPSVCINST_TAGTOFRONT)
+ memmove(&GroupOrder[2], &GroupOrder[1], bufferSize - sizeof(DWORD));
}
else
{