[FREELDR]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 16 Dec 2012 14:23:05 +0000 (14:23 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 16 Dec 2012 14:23:05 +0000 (14:23 +0000)
Fix / silence a number of warnings/errors detected with VS-analyze

svn path=/trunk/; revision=57924

reactos/boot/freeldr/freeldr/arch/i386/hardware.c
reactos/boot/freeldr/freeldr/arch/i386/ntoskrnl.c
reactos/boot/freeldr/freeldr/arch/i386/pcmem.c
reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c
reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c
reactos/boot/freeldr/freeldr/debug.c
reactos/boot/freeldr/freeldr/fs/ntfs.c
reactos/boot/freeldr/freeldr/include/winldr.h
reactos/boot/freeldr/freeldr/inffile/inffile.c
reactos/boot/freeldr/freeldr/version.c
reactos/boot/freeldr/freeldr/windows/conversion.c

index fe547ec..8216144 100644 (file)
@@ -1241,7 +1241,8 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
 }
 
 
-static BOOLEAN
+//static
+BOOLEAN
 DetectKeyboardDevice(VOID)
 {
   UCHAR Status;
@@ -1321,8 +1322,8 @@ DetectKeyboardPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
   PCONFIGURATION_COMPONENT_DATA PeripheralKey;
   ULONG Size;
 
-  /* HACK: don't call DetectKeyboardDevice() as it fails in Qemu 0.8.2 */
-  if (TRUE || DetectKeyboardDevice())
+  /* HACK: don't call DetectKeyboardDevice() as it fails in Qemu 0.8.2
+  if (DetectKeyboardDevice()) */
   {
     /* Set 'Configuration Data' value */
     Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
index 272401d..ba09d9b 100644 (file)
@@ -12,6 +12,7 @@ KeInitializeEvent(
     IN EVENT_TYPE Type,
     IN BOOLEAN State)
 {
+    memset(Event, 0, sizeof(*Event));
 }
 
 VOID
index 2c2536e..bf04553 100644 (file)
@@ -285,8 +285,8 @@ PcMemGetBiosMemoryMap(PFREELDR_MEMORY_DESCRIPTOR MemoryMap, ULONG MaxMemoryMapSi
         /* Add the descriptor */
         MapCount = AddMemoryDescriptor(PcMemoryMap,
                                        MAX_BIOS_DESCRIPTORS,
-                                       RealBaseAddress / MM_PAGE_SIZE,
-                                       RealSize / MM_PAGE_SIZE,
+                                       (PFN_NUMBER)(RealBaseAddress / MM_PAGE_SIZE),
+                                       (PFN_NUMBER)(RealSize / MM_PAGE_SIZE),
                                        MemoryType);
       }
 
index bb47c63..fe3d2d6 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 #include <freeldr.h>
+#include <suppress.h>
 
 #define NDEBUG
 #include <debug.h>
@@ -1047,6 +1048,7 @@ PcVideoClearScreen(UCHAR Attr)
        BufPtr < (USHORT *) (VIDEOTEXT_MEM_ADDRESS + VIDEOTEXT_MEM_SIZE);
        BufPtr++)
     {
+      _PRAGMA_WARNING_SUPPRESS(__WARNING_DEREF_NULL_PTR)
       *BufPtr = AttrChar;
     }
 }
index 188f646..4cc9eee 100644 (file)
@@ -327,11 +327,11 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
     USHORT i;
     ULONG Size;
     BOOLEAN Changed;
-    
+
     /* Count the number of visible drives */
     DiskReportError(FALSE);
     DiskCount = 0;
-    
+
     /* There are some really broken BIOSes out there. There are even BIOSes
         * that happily report success when you ask them to read from non-existent
         * harddisks. So, we set the buffer to known contents first, then try to
@@ -357,9 +357,9 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
     DiskReportError(TRUE);
     TRACE("BIOS reports %d harddisk%s\n",
           (int)DiskCount, (DiskCount == 1) ? "": "s");
-    
+
     //DetectBiosFloppyController(BusKey);
-    
+
     /* Allocate resource descriptor */
     Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
         sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount;
@@ -369,7 +369,7 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
         ERR("Failed to allocate resource descriptor\n");
         return;
     }
-    
+
     /* Initialize resource descriptor */
     memset(PartialResourceList, 0, Size);
     PartialResourceList->Version = 1;
@@ -380,7 +380,7 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
     PartialResourceList->PartialDescriptors[0].Flags = 0;
     PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
         sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount;
-    
+
     /* Get harddisk Int13 geometry data */
     Int13Drives = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
     for (i = 0; i < DiskCount; i++)
@@ -392,7 +392,7 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
             Int13Drives[i].SectorsPerTrack = (USHORT)Geometry.Sectors;
             Int13Drives[i].MaxHeads = (USHORT)Geometry.Heads - 1;
             Int13Drives[i].NumberDrives = DiskCount;
-            
+
             TRACE(
                       "Disk %x: %u Cylinders  %u Heads  %u Sectors  %u Bytes\n",
                       0x80 + i,
@@ -402,7 +402,7 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
                       Geometry.BytesPerSector);
         }
     }
-    
+
     FldrCreateComponentKey(BusKey,
                            ControllerClass,
                            DiskController,
@@ -414,14 +414,12 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
                            Size,
                            &ControllerKey);
     TRACE("Created key: DiskController\\0\n");
-    
+
     MmHeapFree(PartialResourceList);
-    
+
     /* Create and fill subkey for each harddisk */
     for (i = 0; i < DiskCount; i++)
     {
-        PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
-        ULONG Size;
         CHAR Identifier[20];
 
         /* Get disk values */
index d553f26..21b78ca 100644 (file)
@@ -275,7 +275,7 @@ DbgAddDebugChannel( CHAR* channel, CHAR* level, CHAR op)
         iLevel = TRACE_LEVEL;
     else
         return FALSE;
-    
+
     if(strcmp(channel, "memory") == 0) iChannel = DPRINT_MEMORY;
     else if(strcmp(channel, "filesystem") == 0) iChannel = DPRINT_FILESYSTEM;
     else if(strcmp(channel, "inifile") == 0) iChannel = DPRINT_INIFILE;
@@ -289,7 +289,7 @@ DbgAddDebugChannel( CHAR* channel, CHAR* level, CHAR op)
     else if(strcmp(channel, "peloader") == 0) iChannel = DPRINT_PELOADER;
     else if(strcmp(channel, "scsiport") == 0) iChannel = DPRINT_SCSIPORT;
     else if(strcmp(channel, "heap") == 0) iChannel = DPRINT_HEAP;
-    else if(strcmp(channel, "all") == 0) 
+    else if(strcmp(channel, "all") == 0)
     {
         int i;
 
@@ -309,7 +309,7 @@ DbgAddDebugChannel( CHAR* channel, CHAR* level, CHAR op)
         DbgChannels[iChannel] |= iLevel;
     else
         DbgChannels[iChannel] &= ~iLevel;
-    
+
     return TRUE;
 }
 
@@ -411,7 +411,7 @@ RtlAssert(IN PVOID FailedAssertion,
 {
    if (Message)
    {
-      DbgPrint("Assertion \'%s\' failed at %s line %d: %s\n",
+      DbgPrint("Assertion \'%s\' failed at %s line %u: %s\n",
                (PCHAR)FailedAssertion,
                (PCHAR)FileName,
                LineNumber,
@@ -419,7 +419,7 @@ RtlAssert(IN PVOID FailedAssertion,
    }
    else
    {
-      DbgPrint("Assertion \'%s\' failed at %s line %d\n",
+      DbgPrint("Assertion \'%s\' failed at %s line %u\n",
                (PCHAR)FailedAssertion,
                (PCHAR)FileName,
                LineNumber);
index 824c8db..c523bcf 100644 (file)
@@ -66,7 +66,7 @@ static PUCHAR NtfsDecodeRun(PUCHAR DataRun, LONGLONG *DataRunOffset, ULONGLONG *
     DataRun++;
     for (i = 0; i < DataRunLengthSize; i++)
     {
-        *DataRunLength += *DataRun << (i << 3);
+        *DataRunLength += ((ULONG64)*DataRun) << (i * 8);
         DataRun++;
     }
 
@@ -79,11 +79,11 @@ static PUCHAR NtfsDecodeRun(PUCHAR DataRun, LONGLONG *DataRunOffset, ULONGLONG *
     {
         for (i = 0; i < DataRunOffsetSize - 1; i++)
         {
-            *DataRunOffset += *DataRun << (i << 3);
+            *DataRunOffset += ((ULONG64)*DataRun) << (i * 8);
             DataRun++;
         }
         /* The last byte contains sign so we must process it different way. */
-        *DataRunOffset = ((CHAR)(*(DataRun++)) << (i << 3)) + *DataRunOffset;
+        *DataRunOffset = ((LONG64)(CHAR)(*(DataRun++)) << (i * 8)) + *DataRunOffset;
     }
 
     TRACE("DataRunOffsetSize: %x\n", DataRunOffsetSize);
@@ -387,7 +387,7 @@ static PNTFS_ATTR_CONTEXT NtfsFindAttributeHelper(PNTFS_VOLUME_INFO Volume, PNTF
                 ListBuffer = MmHeapAlloc((ULONG)ListSize);
             else
                 ListBuffer = NULL;
-            
+
             if(!ListBuffer)
             {
                 TRACE("Failed to allocate memory: %x\n", (ULONG)ListSize);
@@ -616,7 +616,7 @@ static BOOLEAN NtfsFindMftRecord(PNTFS_VOLUME_INFO Volume, ULONGLONG MFTIndex, P
                 BitmapData = MmHeapAlloc((ULONG)BitmapDataSize);
             else
                 BitmapData = NULL;
-            
+
             if (BitmapData == NULL)
             {
                 MmHeapFree(IndexRecord);
index dd0aa4f..b739a67 100644 (file)
@@ -86,7 +86,7 @@ VOID LoadAndBootWindows(IN OperatingSystemItem* OperatingSystem,
 // conversion.c
 PVOID VaToPa(PVOID Va);
 PVOID PaToVa(PVOID Pa);
-VOID List_PaToVa(LIST_ENTRY *ListEntry);
+VOID List_PaToVa(_In_ LIST_ENTRY *ListEntry);
 VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start);
 
 // peloader.c
index 1b75ed8..f753a3b 100644 (file)
@@ -560,7 +560,7 @@ static const CHAR *line_start_state( struct parser *parser, const CHAR *pos )
            return p + 1;
 
          default:
-           if (!isspace(*p))
+           if (!isspace((unsigned char)*p))
              {
                parser->start = p;
                set_state( parser, KEY_NAME );
@@ -633,7 +633,7 @@ static const CHAR *key_name_state( struct parser *parser, const CHAR *pos )
             set_state( parser, EOL_BACKSLASH );
             return p;
         default:
-            if (!isspace(*p)) token_end = p + 1;
+            if (!isspace((unsigned char)*p)) token_end = p + 1;
             else
             {
                 push_token( parser, p );
@@ -685,7 +685,7 @@ static const CHAR *value_name_state( struct parser *parser, const CHAR *pos )
             set_state( parser, EOL_BACKSLASH );
             return p;
         default:
-            if (!isspace(*p)) token_end = p + 1;
+            if (!isspace((unsigned char)*p)) token_end = p + 1;
             else
             {
                 push_token( parser, p );
@@ -730,7 +730,7 @@ static const CHAR *eol_backslash_state( struct parser *parser, const CHAR *pos )
            return p + 1;
 
          default:
-           if (isspace(*p))
+           if (isspace((unsigned char)*p))
              continue;
            push_token( parser, p );
            pop_state( parser );
@@ -787,7 +787,7 @@ static const CHAR *leading_spaces_state( struct parser *parser, const CHAR *pos
          set_state( parser, EOL_BACKSLASH );
          return p;
        }
-      if (!isspace(*p))
+      if (!isspace((unsigned char)*p))
        break;
     }
   parser->start = p;
@@ -808,7 +808,7 @@ static const CHAR *trailing_spaces_state( struct parser *parser, const CHAR *pos
          set_state( parser, EOL_BACKSLASH );
          return p;
        }
-      if (!isspace(*p))
+      if (!isspace((unsigned char)*p))
        break;
     }
   pop_state( parser );
index 888c90a..41c1c30 100644 (file)
@@ -23,14 +23,11 @@ CHAR        FreeLoaderVersionString[80];
 
 PCHAR GetFreeLoaderVersionString(VOID)
 {
-       if (FREELOADER_PATCH_VERSION == 0)
-       {
-               sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION);
-       }
-       else
-       {
-               sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION, FREELOADER_PATCH_VERSION);
-       }
+#if (FREELOADER_PATCH_VERSION == 0)
+    sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION);
+#else
+    sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION, FREELOADER_PATCH_VERSION);
+#endif
 
        return FreeLoaderVersionString;
 }
index 5c5452a..82e393a 100644 (file)
@@ -45,7 +45,7 @@ PaToVa(PVOID Pa)
 #endif
 
 VOID
-List_PaToVa(PLIST_ENTRY ListHeadPa)
+List_PaToVa(_In_ PLIST_ENTRY ListHeadPa)
 {
        PLIST_ENTRY EntryPa, NextPa;