[SCHEDSVC]

Avoid JOBs overrunning in LoadJobs().
- Define JOB_NAME_LENGTH and use it instead of hardcoded values.
Based on a patch by Victor Martinez Calvo.
CORE-13389

svn path=/trunk/; revision=74944
This commit is contained in:
Eric Kohl 2017-06-07 17:45:05 +00:00
parent 3e87295366
commit 5ec31693b0
2 changed files with 6 additions and 4 deletions

View file

@ -41,7 +41,7 @@ GetJobName(
HKEY hJobsKey, HKEY hJobsKey,
PWSTR pszJobName) PWSTR pszJobName)
{ {
WCHAR szNameBuffer[9]; WCHAR szNameBuffer[JOB_NAME_LENGTH];
FILETIME SystemTime; FILETIME SystemTime;
ULONG ulSeed, ulValue; ULONG ulSeed, ulValue;
HKEY hKey; HKEY hKey;
@ -179,7 +179,7 @@ LONG
LoadJobs(VOID) LoadJobs(VOID)
{ {
SCHEDULE Schedule; SCHEDULE Schedule;
WCHAR szNameBuffer[32]; WCHAR szNameBuffer[JOB_NAME_LENGTH];
DWORD dwNameLength, dwIndex, dwSize; DWORD dwNameLength, dwIndex, dwSize;
HKEY hJobsKey = NULL, hJobKey = NULL; HKEY hJobsKey = NULL, hJobKey = NULL;
PJOB pJob = NULL; PJOB pJob = NULL;
@ -201,7 +201,7 @@ LoadJobs(VOID)
for (dwIndex = 0; dwIndex < 1000; dwIndex++) for (dwIndex = 0; dwIndex < 1000; dwIndex++)
{ {
dwNameLength = 32; dwNameLength = JOB_NAME_LENGTH;
lError = RegEnumKeyEx(hJobsKey, lError = RegEnumKeyEx(hJobsKey,
dwIndex, dwIndex,
szNameBuffer, szNameBuffer,

View file

@ -18,6 +18,8 @@
#include <wine/debug.h> #include <wine/debug.h>
#define JOB_NAME_LENGTH 9
NTSYSAPI NTSYSAPI
ULONG ULONG
NTAPI NTAPI
@ -30,7 +32,7 @@ typedef struct _JOB
LIST_ENTRY StartEntry; LIST_ENTRY StartEntry;
ULARGE_INTEGER StartTime; ULARGE_INTEGER StartTime;
WCHAR Name[9]; WCHAR Name[JOB_NAME_LENGTH];
DWORD JobId; DWORD JobId;
DWORD_PTR JobTime; DWORD_PTR JobTime;