* use ConsoleInfo struct directly
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Mon, 4 Sep 2006 21:26:49 +0000 (21:26 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Mon, 4 Sep 2006 21:26:49 +0000 (21:26 +0000)
* change type in global struct (avoid buffer overflow when reading value from registry)

svn path=/trunk/; revision=23918

reactos/dll/win32/console/console.c
reactos/dll/win32/console/console.h

index e10e3bb..3bf5de1 100644 (file)
@@ -192,14 +192,14 @@ InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
        else
        {
                /* use current info */
-               PConsoleInfo pSharedInfo = MapViewOfFile((HANDLE)wParam,
-                                                 FILE_MAP_ALL_ACCESS,
-                                                 0,
-                                                 0,
-                                                 sizeof(ConsoleInfo));
-
-               /* copy options */
-               if (pSharedInfo)
+               PConsoleInfo pSharedInfo = (PConsoleInfo)wParam;
+
+               if (IsBadReadPtr((const void *)pSharedInfo, sizeof(ConsoleInfo)))
+               {
+                       /* use defaults */
+                       InitConsoleDefaults(pConInfo);                  
+               }
+               else
                {
                        pConInfo->InsertMode = pSharedInfo->InsertMode;
                        pConInfo->HistoryBufferSize = pSharedInfo->HistoryBufferSize;
@@ -255,8 +255,6 @@ CPlApplet(
        LPARAM lParam1,
        LPARAM lParam2)
 {
-  int i = (int)lParam1;
-
   switch(uMsg)
   {
     case CPL_INIT:
@@ -270,14 +268,14 @@ CPlApplet(
     case CPL_INQUIRE:
     {
       CPLINFO *CPlInfo = (CPLINFO*)lParam2;
-      CPlInfo->idIcon = Applets[i].idIcon;
-      CPlInfo->idName = Applets[i].idName;
-      CPlInfo->idInfo = Applets[i].idDescription;
+      CPlInfo->idIcon = Applets[0].idIcon;
+      CPlInfo->idName = Applets[0].idName;
+      CPlInfo->idInfo = Applets[0].idDescription;
       break;
     }
     case CPL_DBLCLK:
     {
-      Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
+      Applets[0].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
       break;
     }
   }
index 9339258..5f01b93 100644 (file)
@@ -25,7 +25,7 @@ typedef struct TAGConsoleInfo
   HWND hConsoleWindow;
   TCHAR szProcessName[MAX_PATH];
   BOOLEAN AppliedConfig;
-  BOOLEAN UseRasterFonts;
+  DWORD UseRasterFonts;
   DWORD FontSize;
   DWORD FontWeight;
   FONTSIGNATURE FontSignature;