From 1ec07af70925ece698b733d55dedd1d9878b70f2 Mon Sep 17 00:00:00 2001 From: Tadeusz Struk Date: Fri, 24 Jan 2020 19:05:34 -0800 Subject: [PATCH] esys: zero out ctx->salt after on startAuthSession_finish The ctx->salt is used to calculate session key during startAuthSession call if the caller pass a valid tpmKey parameter. There salt is calculated in the _Async call and the the session key is calculated in the _Finish call. The problem is that if in the same context an unsalted session is created after a salted session the ctx->salt will still hold the old value and it will incorrectly be used for session key calculation in the the subsequent _Finish call. To fix this the salt needs to be set to cleaned after no longer needed. Fixes: #1574 Signed-off-by: Tadeusz Struk --- src/tss2-esys/api/Esys_StartAuthSession.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tss2-esys/api/Esys_StartAuthSession.c b/src/tss2-esys/api/Esys_StartAuthSession.c index 1717928a717d..6367419d7c9a 100644 --- a/src/tss2-esys/api/Esys_StartAuthSession.c +++ b/src/tss2-esys/api/Esys_StartAuthSession.c @@ -497,6 +497,7 @@ Esys_StartAuthSession_Finish( goto_if_error(r, "Marshal session name", error_cleanup); sessionHandleNode->rsrc.name.size = offset; + memset(&esysContext->salt, '\0', sizeof(esysContext->salt)); esysContext->state = _ESYS_STATE_INIT; return TSS2_RC_SUCCESS; -- 2.27.0