diff -ur TPM2.0-TSS-1.0/sysapi/sysapi_util/CommandUtil.c TPM2.0-TSS-1.0-new/sysapi/sysapi_util/CommandUtil.c
--- TPM2.0-TSS-1.0/sysapi/sysapi_util/CommandUtil.c 2016-11-01 06:53:15.000000000 -0700
+++ TPM2.0-TSS-1.0-new/sysapi/sysapi_util/CommandUtil.c 2017-04-03 10:19:11.337348997 -0700
@@ -184,13 +184,18 @@
// Common to all _Complete
TSS2_RC CommonComplete( TSS2_SYS_CONTEXT *sysContext )
{
- UINT32 rspSize = CHANGE_ENDIAN_DWORD( ( (TPM20_Header_Out *)( SYS_CONTEXT->tpmOutBuffPtr ) )->responseSize );
+ UINT32 rspSize;
if( sysContext == NULL )
{
return TSS2_SYS_RC_BAD_REFERENCE;
}
- else if( SYS_CONTEXT->previousStage != CMD_STAGE_RECEIVE_RESPONSE || SYS_CONTEXT->rval != TSS2_RC_SUCCESS )
+ else
+ {
+ rspSize = CHANGE_ENDIAN_DWORD( ( (TPM20_Header_Out *)( SYS_CONTEXT->tpmOutBuffPtr ) )->responseSize );
+ }
+
+ if( SYS_CONTEXT->previousStage != CMD_STAGE_RECEIVE_RESPONSE || SYS_CONTEXT->rval != TSS2_RC_SUCCESS )
{
SYS_CONTEXT->rval = TSS2_SYS_RC_BAD_SEQUENCE;
}