diff --git a/interfaces/inner_api/syscap_interface.c b/interfaces/inner_api/syscap_interface.c index c85b66a65c89cc425a7e999af1601e686f32a1e5..10400be2a8d085de82970991229f75cd7d35e245 100644 --- a/interfaces/inner_api/syscap_interface.c +++ b/interfaces/inner_api/syscap_interface.c @@ -556,6 +556,7 @@ static int32_t CheckPcidEachBit(struct PcidPriSyscapInfo *pcidPriSyscapInfo, Com if (ret != EOK) { PRINT_ERR("strcpy_s failed.\n"); FreeCompareError(result); + free(tempSyscap); return -1; } result->syscap[pcidPriSyscapInfo->ossyscapFlag++] = tempSyscap; @@ -612,6 +613,7 @@ static int32_t ComparePcidWithPriSyscap(struct PcidPriSyscapInfo pcidPriSyscapIn if (pcidPriSyscapInfo.ret != EOK) { FreeCompareError(result); PRINT_ERR("strcpy_s failed.\n"); + free(temp); return -1; } result->syscap[pcidPriSyscapInfo.ossyscapFlag + prisyscapFlag] = temp;