[SCHEDSVC]
authorEric Kohl <eric.kohl@reactos.org>
Wed, 7 Jun 2017 17:45:05 +0000 (17:45 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Wed, 7 Jun 2017 17:45:05 +0000 (17:45 +0000)
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

reactos/base/services/schedsvc/job.c
reactos/base/services/schedsvc/precomp.h

index 89bd28d..b7abac0 100644 (file)
@@ -41,7 +41,7 @@ GetJobName(
     HKEY hJobsKey,
     PWSTR pszJobName)
 {
-    WCHAR szNameBuffer[9];
+    WCHAR szNameBuffer[JOB_NAME_LENGTH];
     FILETIME SystemTime;
     ULONG ulSeed, ulValue;
     HKEY hKey;
@@ -179,7 +179,7 @@ LONG
 LoadJobs(VOID)
 {
     SCHEDULE Schedule;
-    WCHAR szNameBuffer[32];
+    WCHAR szNameBuffer[JOB_NAME_LENGTH];
     DWORD dwNameLength, dwIndex, dwSize;
     HKEY hJobsKey = NULL, hJobKey = NULL;
     PJOB pJob = NULL;
@@ -201,7 +201,7 @@ LoadJobs(VOID)
 
     for (dwIndex = 0; dwIndex < 1000; dwIndex++)
     {
-        dwNameLength = 32;
+        dwNameLength = JOB_NAME_LENGTH;
         lError = RegEnumKeyEx(hJobsKey,
                               dwIndex,
                               szNameBuffer,
index 5d472d3..6b8e748 100644 (file)
@@ -18,6 +18,8 @@
 
 #include <wine/debug.h>
 
+#define JOB_NAME_LENGTH 9
+
 NTSYSAPI
 ULONG
 NTAPI
@@ -30,7 +32,7 @@ typedef struct _JOB
 
     LIST_ENTRY StartEntry;
     ULARGE_INTEGER StartTime;
-    WCHAR Name[9];
+    WCHAR Name[JOB_NAME_LENGTH];
 
     DWORD JobId;
     DWORD_PTR JobTime;