From 6fa84da6e6f607ccec611a08dc1a65805731df61 Mon Sep 17 00:00:00 2001 From: tongkai0808fh Date: Fri, 24 May 2024 03:15:48 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B6=88=E9=99=A4interfaces/inner=5Fapi/sy?= =?UTF-8?q?scap=5Finterface.c=E6=96=87=E4=BB=B6=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=AE=89=E5=85=A8=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tongkai0808fh --- interfaces/inner_api/syscap_interface.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/interfaces/inner_api/syscap_interface.c b/interfaces/inner_api/syscap_interface.c index f2f8738..00954b1 100644 --- a/interfaces/inner_api/syscap_interface.c +++ b/interfaces/inner_api/syscap_interface.c @@ -121,17 +121,20 @@ bool EncodePrivateSyscap(char **output, int *outputLen) if (bufferLen < (PCID_MAIN_BYTES + 1) || bufferLen > INT32_MAX) { PRINT_ERR("Parameter bufferLen out of range."); + FreeContextBuffer(contextBuffer); return false; } uint32_t priLen = bufferLen - PCID_MAIN_BYTES - 1; if ((int)priLen <= 0) { *outputLen = 0; + FreeContextBuffer(contextBuffer); return false; } outputStr = (char *)calloc(priLen, sizeof(char)); if (outputStr == NULL) { PRINT_ERR("malloc buffer failed, size = %u, errno = %d\n", priLen, errno); *outputLen = 0; + FreeContextBuffer(contextBuffer); return false; } @@ -246,6 +249,7 @@ bool DecodePrivateSyscap(char *input, char (**output)[SINGLE_SYSCAP_LEN], int *o *bufferPos = '\0'; if (sprintf_s(*outputArray, SINGLE_SYSCAP_LEN, "SystemCapability.%s", buffer) == -1) { free(outputArray); + outputArray = NULL; return false; } bufferPos = buffer; @@ -512,6 +516,7 @@ char *DecodeRpcidToStringFormat(const char *inputFile) } PartSysCapAndOutBuffer(freeAfterDecodeRpcidInfo, outBuffer, priSyscapArray, sysCapArray); + priSyscapArray = NULL; return FreeAfterDecodeRpcidToString(freeAfterDecodeRpcidInfo, FREE_MALLOC_PRISYSCAP_AFTER_DECODE_RPCID, outBuffer); } @@ -525,7 +530,7 @@ static int32_t CopySyscopToRet(struct PcidPriSyscapInfo *pcidPriSyscapInfo, cons break; } } - if(t == allSyscapNum){ + if (t == allSyscapNum) { return -1; } pcidPriSyscapInfo->ret = strcpy_s(tempSyscap, sizeof(char) * SINGLE_SYSCAP_LEN, g_arraySyscap[t].str); -- Gitee From 0f9074ad5fe0145c285de313e7174655bfc1684c Mon Sep 17 00:00:00 2001 From: tongkai0808fh Date: Fri, 24 May 2024 03:26:17 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9src/create=5Fpcid.c?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E5=8A=A0=E5=85=A5cJSON=5FDelete(cap?= =?UTF-8?q?VectorPtr);?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tongkai0808fh --- src/create_pcid.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/create_pcid.c b/src/create_pcid.c index d08ff36..2c9da93 100644 --- a/src/create_pcid.c +++ b/src/create_pcid.c @@ -332,6 +332,7 @@ int32_t GetOsSyscap(PCIDMain *pcidMain, cJSON *sysCapObject) } if (!cJSON_AddItemToArray(capVectorPtr, cJSON_CreateString(g_arraySyscap[j].str))) { printf("cJSON_AddItemToArray or cJSON_CreateString failed\n"); + cJSON_Delete(capVectorPtr); return -1; } } @@ -339,9 +340,11 @@ int32_t GetOsSyscap(PCIDMain *pcidMain, cJSON *sysCapObject) if (!cJSON_AddItemToObject(sysCapObject, "os", capVectorPtr)) { PRINT_ERR("cJSON_AddItemToObject failed\n"); + cJSON_Delete(capVectorPtr); return -1; } - + + cJSON_Delete(capVectorPtr); return 0; } -- Gitee