Reviewed-by: jiewen....@intel.com > -----Original Message----- > From: Zeng, Star > Sent: Thursday, September 1, 2016 10:01 AM > To: edk2-devel@lists.01.org > Cc: Zeng, Star <star.z...@intel.com>; Yao, Jiewen <jiewen....@intel.com> > Subject: [PATCH] MdeModulePkg SmbiosMeasurementDxe: Add > NominalSpeed in Type 27 to black list > > Cc: Jiewen Yao <jiewen....@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Star Zeng <star.z...@intel.com> > --- > .../SmbiosMeasurementDxe/SmbiosMeasurementDxe.c | 31 > ++++++++++++++-------- > 1 file changed, 20 insertions(+), 11 deletions(-) > > diff --git > a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement > Dxe.c > b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement > Dxe.c > index f9e0196677a9..bc5e7464e133 100644 > --- > a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement > Dxe.c > +++ > b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurement > Dxe.c > @@ -1,7 +1,7 @@ > /** @file > This driver measures SMBIOS table to TPM. > > -Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -84,6 +84,9 @@ SMBIOS_FILTER_TABLE > mSmbiosFilterType22BlackList[] = { > SMBIOS_FILTER_TABLE mSmbiosFilterType23BlackList[] = { > {0x17, OFFSET_OF(SMBIOS_TABLE_TYPE23, ResetCount), > FIELD_SIZE_OF(SMBIOS_TABLE_TYPE23, ResetCount), 0}, > }; > +SMBIOS_FILTER_TABLE mSmbiosFilterType27BlackList[] = { > + {0x1B, OFFSET_OF(SMBIOS_TABLE_TYPE27, NominalSpeed), > FIELD_SIZE_OF(SMBIOS_TABLE_TYPE27, NominalSpeed), 0}, > +}; > SMBIOS_FILTER_TABLE mSmbiosFilterType39BlackList[] = { > {0x27, OFFSET_OF(SMBIOS_TABLE_TYPE39, SerialNumber), > FIELD_SIZE_OF(SMBIOS_TABLE_TYPE39, SerialNumber), > SMBIOS_FILTER_TABLE_FLAG_IS_STRING}, > {0x27, OFFSET_OF(SMBIOS_TABLE_TYPE39, AssetTagNumber), > FIELD_SIZE_OF(SMBIOS_TABLE_TYPE39, AssetTagNumber), > SMBIOS_FILTER_TABLE_FLAG_IS_STRING}, > @@ -101,6 +104,7 @@ SMBIOS_FILTER_STRUCT > mSmbiosFilterStandardTableBlackList[] = { > {0x12, NULL, 0}, > {0x16, mSmbiosFilterType22BlackList, > sizeof(mSmbiosFilterType22BlackList)/sizeof(mSmbiosFilterType22BlackList[0 > ])}, > {0x17, mSmbiosFilterType23BlackList, > sizeof(mSmbiosFilterType23BlackList)/sizeof(mSmbiosFilterType23BlackList[0 > ])}, > + {0x1B, mSmbiosFilterType27BlackList, > sizeof(mSmbiosFilterType27BlackList)/sizeof(mSmbiosFilterType27BlackList[0 > ])}, > {0x1F, NULL, 0}, > {0x21, NULL, 0}, > {0x27, mSmbiosFilterType39BlackList, > sizeof(mSmbiosFilterType39BlackList)/sizeof(mSmbiosFilterType39BlackList[0 > ])}, > @@ -281,18 +285,23 @@ FilterSmbiosEntry ( > } else { > Filter = FilterStruct->Filter; > for (Index = 0; Index < FilterStruct->FilterCount; Index++) { > - if ((Filter[Index].Flags & > SMBIOS_FILTER_TABLE_FLAG_IS_STRING) != 0) { > - CopyMem (&StringId, (UINT8 *)TableEntry + Filter[Index].Offset, > sizeof(StringId)); > - if (StringId != 0) { > - // set ' ' for string field > - String = GetSmbiosStringById (TableEntry, StringId, > &StringLen); > - ASSERT (String != NULL); > - //DEBUG ((EFI_D_INFO,"StrId(0x%x)-%a(%d)\n", StringId, > String, StringLen)); > - SetMem (String, StringLen, ' '); > + if (((SMBIOS_STRUCTURE *) TableEntry)->Length >= > (Filter[Index].Offset + Filter[Index].Size)) { > + // > + // The field is present in the SMBIOS entry. > + // > + if ((Filter[Index].Flags & > SMBIOS_FILTER_TABLE_FLAG_IS_STRING) != 0) { > + CopyMem (&StringId, (UINT8 *)TableEntry + > Filter[Index].Offset, sizeof(StringId)); > + if (StringId != 0) { > + // set ' ' for string field > + String = GetSmbiosStringById (TableEntry, StringId, > &StringLen); > + ASSERT (String != NULL); > + //DEBUG ((EFI_D_INFO,"StrId(0x%x)-%a(%d)\n", StringId, > String, StringLen)); > + SetMem (String, StringLen, ' '); > + } > } > + // zero non-string field > + ZeroMem ((UINT8 *)TableEntry + Filter[Index].Offset, > Filter[Index].Size); > } > - // zero non-string field > - ZeroMem ((UINT8 *)TableEntry + Filter[Index].Offset, > Filter[Index].Size); > } > } > } > -- > 2.7.0.windows.1
_______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel