\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
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
}\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
\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
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