diff --git a/interfaces/inner_api/syscap_interface.c b/interfaces/inner_api/syscap_interface.c index bde4401..3e3384f 100644 --- a/interfaces/inner_api/syscap_interface.c +++ b/interfaces/inner_api/syscap_interface.c @@ -561,6 +561,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; @@ -610,6 +611,7 @@ static int32_t ComparePcidWithPriSyscap(struct PcidPriSyscapInfo pcidPriSyscapIn if (temp == NULL) { PRINT_ERR("malloc failed.\n"); FreeCompareError(result); + free(temp); return -1; } pcidPriSyscapInfo.ret = strcpy_s(temp, sizeof(char) * SINGLE_SYSCAP_LEN,