diff -ur TPM2.0-TSS-1.0/common/syscontext.c TPM2.0-TSS-1.0-new/common/syscontext.c --- TPM2.0-TSS-1.0/common/syscontext.c 2016-11-01 06:53:15.000000000 -0700 +++ TPM2.0-TSS-1.0-new/common/syscontext.c 2017-04-02 16:36:47.603294296 -0700 @@ -58,10 +58,12 @@ // Initialized the system context structure. rval = Tss2_Sys_Initialize( sysContext, contextSize, tctiContext, abiVersion ); - if( rval == TSS2_RC_SUCCESS ) + if( rval == TSS2_RC_SUCCESS ) { return sysContext; - else - return 0; + } else { + free (sysContext); + return NULL; + } } else { diff -ur TPM2.0-TSS-1.0/resourcemgr/resourcemgr.c TPM2.0-TSS-1.0-new/resourcemgr/resourcemgr.c --- TPM2.0-TSS-1.0/resourcemgr/resourcemgr.c 2016-11-01 06:53:15.000000000 -0700 +++ TPM2.0-TSS-1.0-new/resourcemgr/resourcemgr.c 2017-04-02 16:36:47.604294312 -0700 @@ -2708,6 +2708,7 @@ if( cmdServerStruct->connectSock == INVALID_SOCKET ) { printf( "Accept failed. Error is 0x%x\n", WSAGetLastError() ); + (*rmFree)( cmdServerStruct ); continue; } @@ -2752,6 +2753,7 @@ if( 0 == strcmp( &otherCmdStr[0], serverStruct->serverName ) ) { printf( "SockServer died (%s), socket: 0x%x.\n", serverStruct->serverName, serverStruct->connectSock ); + (*rmFree)( cmdServerStruct ); ExitThread( 0 ); }