From 5d1f516a927a9bca587384c91af6d41292f651b6 Mon Sep 17 00:00:00 2001 From: tongkai0808fh Date: Sat, 18 May 2024 03:13:27 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E9=99=A4src/syscap=5Ftool.c=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AE=89=E5=85=A8=E5=91=8A=E8=AD=A6=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BC=82=E5=B8=B8=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=EF=BC=8C=E6=B6=88=E9=99=A4src/syscap=5Ftool.?= =?UTF-8?q?c=E4=BB=A3=E7=A0=81=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 --- src/syscap_tool.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/syscap_tool.c b/src/syscap_tool.c index 6b04e2c..3e27adb 100644 --- a/src/syscap_tool.c +++ b/src/syscap_tool.c @@ -474,13 +474,20 @@ int32_t EncodeRpcidscToString(char *inputFile, char *outDirPath) // trans to string format freeAfterEncodeRpcidscInfo.sysCapDefine = CreateWholeSyscapJsonObj(); sysCapArray = cJSON_GetObjectItem(freeAfterEncodeRpcidscInfo.rpcidRoot, "syscap"); - if (sysCapArray == NULL || !cJSON_IsArray(sysCapArray)) { + if (sysCapArray == NULL) { + PRINT_ERR("syscap array is null. Input file: %s\n", inputFile); + return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, FREE_WHOLE_SYSCAP_AFTER_RPCIDSC, ret); + } + if (!cJSON_IsArray(sysCapArray)) { PRINT_ERR("Get syscap failed. Input file: %s\n", inputFile); + sysCapArray = NULL; return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, FREE_WHOLE_SYSCAP_AFTER_RPCIDSC, ret); } sysCapArraySize = cJSON_GetArraySize(sysCapArray); if (sysCapArraySize < 0) { PRINT_ERR("Get syscap size failed. Input file: %s\n", inputFile); + sysCapArray = NULL; + sysCapArraySize = NULL; return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, FREE_WHOLE_SYSCAP_AFTER_RPCIDSC, ret); } // malloc for save os syscap index @@ -492,6 +499,7 @@ int32_t EncodeRpcidscToString(char *inputFile, char *outDirPath) ret = OutputSetMemAndPrintToFile(freeAfterEncodeRpcidscInfo, sysCapArraySize, sysCapArray, outDirPath); if (freeAfterEncodeRpcidscInfo.flag == 1) { + freeAfterEncodeRpcidscInfo.osSysCapIndex = NULL; return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, freeAfterEncodeRpcidscInfo.type, ret); } return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, FREE_OUTBUFFER_AFTER_RPCIDSC, ret);