[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 10/13] vtpmmgr: Remove bogus cast from TPM2_GetRandom
On 5/6/21 9:59 AM, Jason Andryuk wrote: > The UINT32 <-> UINT16 casting in TPM2_GetRandom is incorrect. Use a > local UINT16 as needed for the TPM hardware command and assign the > result. > > Suggested-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> > Signed-off-by: Jason Andryuk <jandryuk@xxxxxxxxx> > --- Reviewed-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx> > stubdom/vtpmmgr/tpm2.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/stubdom/vtpmmgr/tpm2.c b/stubdom/vtpmmgr/tpm2.c > index 655e6d164c..ebd06eac74 100644 > --- a/stubdom/vtpmmgr/tpm2.c > +++ b/stubdom/vtpmmgr/tpm2.c > @@ -427,15 +427,22 @@ abort_egress: > > TPM_RC TPM2_GetRandom(UINT32 * bytesRequested, BYTE * randomBytes) > { > + UINT16 bytesReq; > TPM_BEGIN(TPM_ST_NO_SESSIONS, TPM_CC_GetRandom); > > - ptr = pack_UINT16(ptr, (UINT16)*bytesRequested); > + if (*bytesRequested > UINT16_MAX) > + bytesReq = UINT16_MAX; > + else > + bytesReq = *bytesRequested; > + > + ptr = pack_UINT16(ptr, bytesReq); > > TPM_TRANSMIT(); > TPM_UNPACK_VERIFY(); > > - ptr = unpack_UINT16(ptr, (UINT16 *)bytesRequested); > - ptr = unpack_TPM_BUFFER(ptr, randomBytes, *bytesRequested); > + ptr = unpack_UINT16(ptr, &bytesReq); > + *bytesRequested = bytesReq; > + ptr = unpack_TPM_BUFFER(ptr, randomBytes, bytesReq); > > abort_egress: > return status; >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |