在執行程序結束return 0 之后出現上圖問題。主要原因是在程序中存在數組越界。
解決方法:
1. 查看定義的結構體內buffer大小,為4096字節
typedef struct { UINT32 len; BYTE buf[4096]; } ctrust_tpm2_combuf_t
2. 查看要存儲的結構體TPMS_CONTEXT大小為5208字節
sizeof(TPMS_CONTEXT)
3. 在memcpy拷貝時,要添加字節大小限制條件
if (sizeof(TPMS_CONTEXT) > 4096) { sub_context->len = 4096; } else { sub_context->len = sizeof(TPMS_CONTEXT); } memcpy(&sub_context->buf, (BYTE *)&context, sub_context->len);