Correct one bug when create raw section
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Thu, 19 Jul 2007 01:44:44 +0000 (01:44 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Thu, 19 Jul 2007 01:44:44 +0000 (01:44 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@355 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenFfs/GenFfs.c

index 2706d75..6facc59 100644 (file)
@@ -142,6 +142,12 @@ StringtoAlignment (
   )\r
 {\r
   UINT32 Index = 0;\r
+  //\r
+  // Check AlignBuffer\r
+  //\r
+  if (AlignBuffer == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
   for (Index = 0; Index < sizeof (mAlignName) / sizeof (CHAR8 *); Index ++) {\r
     if (stricmp (AlignBuffer, mAlignName [Index]) == 0) {\r
       *AlignNumber = Index;\r
@@ -266,7 +272,7 @@ Returns:
       Offset = Offset - sizeof (EFI_COMMON_SECTION_HEADER);\r
        \r
       if (FileBuffer != NULL && ((Size + Offset) < *BufferLength)) {\r
-        SectHeader          = (EFI_COMMON_SECTION_HEADER *) FileBuffer;\r
+        SectHeader          = (EFI_COMMON_SECTION_HEADER *) (FileBuffer + Size);\r
         SectHeader->Type    = EFI_SECTION_RAW;\r
         SectHeader->Size[0] = (UINT8) (Offset & 0xff);\r
         SectHeader->Size[1] = (UINT8) ((Offset & 0xff00) >> 8);\r
@@ -292,7 +298,7 @@ Returns:
     // Now read the contents of the file into the buffer\r
     // Buffer must be enough to contain the file content.\r
     //\r
-    if (FileSize > 0 && FileBuffer != NULL && (Size + FileSize) <= *BufferLength) {\r
+    if ((FileSize > 0) && (FileBuffer != NULL) && ((Size + FileSize) <= *BufferLength)) {\r
       if (fread (FileBuffer + Size, (size_t) FileSize, 1, InFile) != 1) {\r
         Error (NULL, 0, 0, InputFileName[Index], "failed to read contents of input file");\r
         fclose (InFile);\r
@@ -351,6 +357,8 @@ Returns:
   FILE                    *FfsFile;\r
   UINT32                  Index;\r
 \r
+  fprintf (stdout, "GenFfs tool start.\n");  \r
+\r
   Index          = 0;\r
   FfsAttrib      = 0;  \r
   FfsAlign       = 0;\r
@@ -501,7 +509,7 @@ Returns:
       argv += 2;\r
 \r
       if (argc <= 0) {\r
-           InputFileNum ++;\r
+             InputFileNum ++;\r
         break;\r
       }\r
 \r
@@ -672,5 +680,7 @@ Finish:
   // routines, then the status has been saved. Get the value and\r
   // return it to the caller.\r
   //\r
+  fprintf (stdout, "GenFfs tool done with return code is 0x%x.\n", GetUtilityStatus ());  \r
+\r
   return GetUtilityStatus ();\r
 }\r