diff --git a/src/main.c b/src/main.c index 4cc9e42ad889b729dfdfeddbe9112cb94d377849..06cc08370320db7e046be974dbe13dd65d7fd98a 100644 --- a/src/main.c +++ b/src/main.c @@ -126,7 +126,9 @@ int32_t OperateByBitMap(char *const *argv, uint16_t bitMap, char *outputpath) case 0x10E: // 0x10E, -Rdsi inputfile printf("-Rdsi is not support currently.\n"); break; case 0x80: // 0x80, -v - (void)OutputVersion(argv[optind], optind); break; + if (optind < 0 || optind >= 4){ + (void)OutputVersion(argv[optind], optind); break; + } default: (void)OutputHelp(); } diff --git a/src/syscap_tool.c b/src/syscap_tool.c index ff4e084278fa823e752e69e331663550d2a33c77..46391593c9f3981349c8189adb5c5e39c6277424 100644 --- a/src/syscap_tool.c +++ b/src/syscap_tool.c @@ -232,7 +232,7 @@ static int32_t ParseRpcidToJson(char *input, uint32_t inputLen, cJSON *rpcidJson cJSON_Delete(sysCapJson); return -1; } - + cJSON_Delete(sysCapJson); return ret; } @@ -263,7 +263,7 @@ int32_t RPCIDDecode(char *inputFile, char *outputPath) PRINT_ERR("ConvertedContextSaveAsFile failed, outputPath:%s, filename:rpcid.json\n", outputPath); goto FREE_RPCID_ROOT; } - + goto FREE_CONTEXT_OUT; FREE_RPCID_ROOT: cJSON_Delete(rpcidRoot); FREE_CONTEXT_OUT: @@ -485,6 +485,7 @@ int32_t EncodeRpcidscToString(char *inputFile, char *outDirPath) freeAfterEncodeRpcidscInfo.osSysCapIndex = (uint16_t *)malloc(sizeof(uint16_t) * sysCapArraySize); if (freeAfterEncodeRpcidscInfo.osSysCapIndex == NULL) { PRINT_ERR("malloc failed.\n"); + free(freeAfterEncodeRpcidscInfo.osSysCapIndex); return FreeAfterEncodeRpcidsc(freeAfterEncodeRpcidscInfo, FREE_WHOLE_SYSCAP_AFTER_RPCIDSC, ret); }