From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.47905.1635788683797641350 for ; Mon, 01 Nov 2021 10:44:44 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10154"; a="218261415" X-IronPort-AV: E=Sophos;i="5.87,200,1631602800"; d="scan'208";a="218261415" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2021 10:44:43 -0700 X-IronPort-AV: E=Sophos;i="5.87,200,1631602800"; d="scan'208";a="666797426" Received: from mdkinney-mobl2.amr.corp.intel.com ([10.209.76.205]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2021 10:44:42 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao , Yuwei Chen Subject: [Patch 1/1] BaseTools/VrfCompile: Fix uninitialized field from unnamed field Date: Mon, 1 Nov 2021 10:44:31 -0700 Message-Id: <20211101174431.179-1-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.32.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3687 If a C structure parsed by the VFR compiler contains an unnamed field, then mFieldName is left uninitialized, which generates random data in the VFR compiler output file. If the FieldName is NULL, then initialize pNewField->mFieldName to a Null-terminated empty string. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Michael D Kinney --- BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp index 2b9b5dbb1ca5..11470de45cce 100644 --- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp +++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp @@ -1135,6 +1135,8 @@ CVfrVarDataTypeDB::DataTypeAddBitField ( if (FieldName != NULL) { strncpy (pNewField->mFieldName, FieldName, MAX_NAME_LEN - 1); pNewField->mFieldName[MAX_NAME_LEN - 1] = 0; + } else { + strncpy (pNewField->mFieldName, "", MAX_NAME_LEN - 1); } pNewField->mFieldType = pFieldType; pNewField->mIsBitField = TRUE; @@ -3916,5 +3918,3 @@ CVfrStringDB::GetUnicodeStringTextSize ( CVfrVarDataTypeDB gCVfrVarDataTypeDB; CVfrDefaultStore gCVfrDefaultStore; CVfrDataStorage gCVfrDataStorage; - - -- 2.32.0.windows.1