]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
BaseTools: silence parentheses-equality warning
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrUtilityLib.cpp
index b00a926adeb549f465bcf83544dc39fefb50c222..c536498d771ec9852ece0a74dbb505c8e9bc6db1 100644 (file)
@@ -15,6 +15,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "stdio.h"\r
 #include "stdlib.h"\r
+#include "assert.h"\r
 #include "CommonLib.h"\r
 #include "VfrUtilityLib.h"\r
 #include "VfrFormPkg.h"\r
@@ -615,9 +616,13 @@ CVfrVarDataTypeDB::DataTypeHasBitField (
   SVfrDataField       *pTmp;\r
 \r
   GetDataType (TypeName, &pType);\r
+\r
+  if (pType == NULL){\r
+    return FALSE;\r
+  }\r
   for (pTmp = pType->mMembers; pTmp!= NULL; pTmp = pTmp->mNext) {\r
     if (pTmp->mIsBitField) {\r
-       return TRUE;\r
+      return TRUE;\r
     }\r
   }\r
   return FALSE;\r
@@ -648,7 +653,7 @@ CVfrVarDataTypeDB::IsThisBitField (
     CHECK_ERROR_RETURN(GetTypeField (FName, pType, pField), VFR_RETURN_SUCCESS);\r
     pType  = pField->mFieldType;\r
   }\r
-  if (pField->mIsBitField) {\r
+  if (pField != NULL && pField->mIsBitField) {\r
     return TRUE;\r
   } else {\r
     return FALSE;\r
@@ -838,7 +843,9 @@ CVfrVarDataTypeDB::InternalTypesListInit (
   for (Index = 0; gInternalTypesTable[Index].mTypeName != NULL; Index++) {\r
     New                 = new SVfrDataType;\r
     if (New != NULL) {\r
-      strcpy (New->mTypeName, gInternalTypesTable[Index].mTypeName);\r
+      assert (strlen (gInternalTypesTable[Index].mTypeName) < MAX_NAME_LEN);\r
+      strncpy (New->mTypeName, gInternalTypesTable[Index].mTypeName, MAX_NAME_LEN - 1);\r
+      New->mTypeName[MAX_NAME_LEN - 1] = 0;\r
       New->mType        = gInternalTypesTable[Index].mType;\r
       New->mAlign       = gInternalTypesTable[Index].mAlign;\r
       New->mTotalSize   = gInternalTypesTable[Index].mSize;\r
@@ -951,6 +958,7 @@ CVfrVarDataTypeDB::CVfrVarDataTypeDB (
   mPackAlign     = DEFAULT_PACK_ALIGN;\r
   mPackStack     = NULL;\r
   mFirstNewDataTypeName = NULL;\r
+  mCurrDataType  = NULL;\r
 \r
   InternalTypesListInit ();\r
 }\r
@@ -1080,7 +1088,8 @@ CVfrVarDataTypeDB::SetNewTypeName (
     }\r
   }\r
 \r
-  strcpy(mNewDataType->mTypeName, TypeName);\r
+  strncpy(mNewDataType->mTypeName, TypeName, MAX_NAME_LEN - 1);\r
+  mNewDataType->mTypeName[MAX_NAME_LEN - 1] = 0;\r
   return VFR_RETURN_SUCCESS;\r
 }\r
 \r
@@ -1141,7 +1150,8 @@ CVfrVarDataTypeDB::DataTypeAddBitField (
 \r
   MaxDataTypeSize = mNewDataType->mTotalSize;\r
   if (FieldName != NULL) {\r
-    strcpy (pNewField->mFieldName, FieldName);\r
+    strncpy (pNewField->mFieldName, FieldName, MAX_NAME_LEN - 1);\r
+    pNewField->mFieldName[MAX_NAME_LEN - 1] = 0;\r
   }\r
   pNewField->mFieldType    = pFieldType;\r
   pNewField->mIsBitField   = TRUE;\r
@@ -1235,7 +1245,8 @@ CVfrVarDataTypeDB::DataTypeAddField (
   if ((pNewField = new SVfrDataField) == NULL) {\r
     return VFR_RETURN_OUT_FOR_RESOURCES;\r
   }\r
-  strcpy (pNewField->mFieldName, FieldName);\r
+  strncpy (pNewField->mFieldName, FieldName, MAX_NAME_LEN - 1);\r
+  pNewField->mFieldName[MAX_NAME_LEN - 1] = 0;\r
   pNewField->mFieldType    = pFieldType;\r
   pNewField->mArrayNum     = ArrayNum;\r
   pNewField->mIsBitField   = FALSE;\r
@@ -1595,6 +1606,7 @@ SVfrVarStorageNode::SVfrVarStorageNode (
   IN EFI_VARSTORE_ID       VarStoreId\r
   )\r
 {\r
+  memset (&mGuid, 0, sizeof (EFI_GUID));\r
   if (StoreName != NULL) {\r
     mVarStoreName = new CHAR8[strlen(StoreName) + 1];\r
     strcpy (mVarStoreName, StoreName);\r
@@ -1606,6 +1618,7 @@ SVfrVarStorageNode::SVfrVarStorageNode (
   mVarStoreType                      = EFI_VFR_VARSTORE_NAME;\r
   mStorageInfo.mNameSpace.mNameTable = new EFI_VARSTORE_ID[DEFAULT_NAME_TABLE_ITEMS];\r
   mStorageInfo.mNameSpace.mTableSize = 0;\r
+  mAssignedFlag                      = FALSE;\r
 }\r
 \r
 SVfrVarStorageNode::~SVfrVarStorageNode (\r