Hi May I know where is the data from? Trusted region or non-trusted region?
I am thinking if we need use ASSERT to avoid user mistake. But want to check the API input assumption at first... > -----Original Message----- > From: Zhang, Shenglei <shenglei.zh...@intel.com> > Sent: Friday, December 6, 2019 9:50 AM > To: devel@edk2.groups.io > Cc: Yao, Jiewen <jiewen....@intel.com>; Wang, Jian J <jian.j.w...@intel.com>; > Zhang, Chao B <chao.b.zh...@intel.com> > Subject: [PATCH] SecurityPkg/Tpm2Help.c: Add boundary check for array > > Add 'Index < HASH_COUNT' to ensure things out of boundary > of digests[] can not be visited. > > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Chao Zhang <chao.b.zh...@intel.com> > Signed-off-by: Shenglei Zhang <shenglei.zh...@intel.com> > --- > SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c > b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c > index 36c240d1221c..a7d4e3ab5373 100644 > --- a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c > +++ b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c > @@ -299,7 +299,7 @@ GetDigestListSize ( > UINT32 TotalSize; > > TotalSize = sizeof(DigestList->count); > - for (Index = 0; Index < DigestList->count; Index++) { > + for (Index = 0; Index < DigestList->count, Index < HASH_COUNT; Index++) { > DigestSize = GetHashSizeFromAlgo (DigestList->digests[Index].hashAlg); > TotalSize += sizeof(DigestList->digests[Index].hashAlg) + DigestSize; > } > -- > 2.18.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#51808): https://edk2.groups.io/g/devel/message/51808 Mute This Topic: https://groups.io/mt/67403438/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-