]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/GenCrc32/GenCrc32.c
BaseTools/GenCrc32: Fix file handles not being closed
[mirror_edk2.git] / BaseTools / Source / C / GenCrc32 / GenCrc32.c
index 34d1a7a3446a6bb1d96f522eeebddbfac4831e52..e1e11c641368154e14d6fd782a8ceb4026af53a9 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
+Calculate Crc32 value and Verify Crc32 value for input data.\r
 \r
-Copyright (c) 2007 - 2010, Intel Corporation                                              \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -9,13 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
-Module Name:\r
-\r
-  GenCrc32.c\r
-\r
-Abstract:\r
-  Calculate Crc32 value and Verify Crc32 value for input data.\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
@@ -29,7 +23,7 @@ Abstract:
 \r
 #define UTILITY_NAME            "GenCrc32"\r
 #define UTILITY_MAJOR_VERSION   0\r
-#define UTILITY_MINOR_VERSION   1\r
+#define UTILITY_MINOR_VERSION   2\r
 \r
 #define CRC32_NULL              0\r
 #define CRC32_ENCODE            1\r
@@ -55,7 +49,7 @@ Returns:
 \r
 --*/\r
 {\r
-  fprintf (stdout, "%s Version %d.%d\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION);\r
+  fprintf (stdout, "%s Version %d.%d %s \n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);\r
 }\r
 \r
 VOID\r
@@ -81,26 +75,32 @@ Returns:
   //\r
   // Summary usage\r
   //\r
-  fprintf (stdout, "\nUsage: %s -e|-d [options] <input_file>\n\n", UTILITY_NAME);\r
+  fprintf (stdout, "Usage: GenCrc32 -e|-d [options] <input_file>\n\n");\r
   \r
   //\r
   // Copyright declaration\r
   // \r
-  fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.\n\n");\r
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.\n\n");\r
 \r
   //\r
   // Details Option\r
   //\r
-  fprintf (stdout, "Options:\n");\r
-  fprintf (stdout, "  -o FileName, --output FileName\n\\r
-                        File will be created to store the ouput content.\n");\r
-  fprintf (stdout, "  -e, --encode          Calculate CRC32 value for the input file.\n");\r
-  fprintf (stdout, "  -d, --decode          Verify CRC32 value for the input file.\n");\r
-  fprintf (stdout, "  -v, --verbose         Turn on verbose output with informational messages.\n");\r
-  fprintf (stdout, "  -q, --quiet           Disable all messages except key message and fatal error\n");\r
-  fprintf (stdout, "  --debug level         Enable debug messages, at input debug level.\n");\r
-  fprintf (stdout, "  --version             Show program's version number and exit.\n");\r
-  fprintf (stdout, "  -h, --help            Show this help message and exit.\n"); \r
+  fprintf (stdout, "optional arguments:\n");\r
+  fprintf (stdout, "  -h, --help            Show this help message and exit\n");\r
+  fprintf (stdout, "  --version             Show program's version number and exit\n");\r
+  fprintf (stdout, "  --debug [DEBUG]       Output DEBUG statements, where DEBUG_LEVEL is 0 (min)\n\\r
+                        - 9 (max)\n");\r
+  fprintf (stdout, "  -v, --verbose         Print informational statements\n");\r
+  fprintf (stdout, "  -q, --quiet           Returns the exit code, error messages will be\n\\r
+                        displayed\n");\r
+  fprintf (stdout, "  -s, --silent          Returns only the exit code; informational and error\n\\r
+                        messages are not displayed\n");\r
+  fprintf (stdout, "  -e, --encode          Calculate CRC32 value for the input file\n");\r
+  fprintf (stdout, "  -d, --decode          Verify CRC32 value for the input file\n");\r
+  fprintf (stdout, "  -o OUTPUT_FILENAME, --output OUTPUT_FILENAME\n\\r
+                        Output file name\n");\r
+  fprintf (stdout, "  --sfo                 Reserved for future use\n");\r
+  \r
 }\r
 \r
 int\r
@@ -164,7 +164,6 @@ Returns:
   argv ++;\r
 \r
   if ((stricmp (argv[0], "-h") == 0) || (stricmp (argv[0], "--help") == 0)) {\r
-    Version ();\r
     Usage ();\r
     return STATUS_SUCCESS;    \r
   }\r
@@ -249,7 +248,7 @@ Returns:
   VerboseMsg ("%s tool start.", UTILITY_NAME);\r
   \r
   //\r
-  // Check Input paramters\r
+  // Check Input parameters\r
   //\r
   if (FileAction == CRC32_NULL) {\r
     Error (NULL, 0, 1001, "Missing option", "either the encode or the decode option must be specified!");\r
@@ -277,7 +276,7 @@ Returns:
   //\r
   // Open Input file and read file data.\r
   //\r
-  InFile = fopen (InputFileName, "rb");\r
+  InFile = fopen (LongFilePath (InputFileName), "rb");\r
   if (InFile == NULL) {\r
     Error (NULL, 0, 0001, "Error opening file", InputFileName);\r
     return STATUS_ERROR;\r
@@ -290,6 +289,7 @@ Returns:
   FileBuffer = (UINT8 *) malloc (FileSize);\r
   if (FileBuffer == NULL) {\r
     Error (NULL, 0, 4001, "Resource", "memory cannot be allcoated!");\r
+    fclose (InFile);\r
     goto Finish;\r
   }\r
   \r
@@ -300,7 +300,7 @@ Returns:
   //\r
   // Open output file\r
   //\r
-  OutFile = fopen (OutputFileName, "wb");\r
+  OutFile = fopen (LongFilePath (OutputFileName), "wb");\r
   if (OutFile == NULL) {\r
     Error (NULL, 0, 0001, "Error opening file", OutputFileName);\r
     goto Finish;\r