Fix static code check

Signed-off-by: Cheng Jinsong <cheng_jinsong@hoperun.com>
This commit is contained in:
Cheng Jinsong
2021-09-10 10:59:37 +00:00
parent ebb5df40d0
commit cb08ce7da2
3 changed files with 81 additions and 78 deletions
+1 -1
View File
@@ -101,7 +101,7 @@ void SetLogLevel(InitLogLevel logLevel);
do { \
if (!(ret)) { \
statement; \
} \
} \
} while (0)
#ifdef __cplusplus
+79 -76
View File
@@ -60,39 +60,6 @@ static const char *g_supportCfg[] = {
"/patch/fstab.cfg",
};
struct CmdTable {
char name[MAX_CMD_NAME_LEN];
void (*DoFuncion)(const char *cmdContent);
};
static const struct CmdTable CMD_TABLE[] = {
{ "start ", DoStart },
{ "mkdir ", DoMkDir },
{ "stop ", DoStop },
{ "reset ", DoReset },
{ "copy ", DoCopy },
{ "chmod ", DoChmod },
{ "chown ", DoChown },
{ "mount ", DoMount },
{ "write ", DoWrite },
{ "rmdir ", DoRmdir },
{ "rm ", DoRm },
#ifndef OHOS_LITE
{ "symlink ", DoSymlink },
{ "makedev ", DoMakeDevice },
{ "mknode ", DoMakeNode },
{ "insmod ", DoInsmod },
{ "trigger ", DoTriggerExec },
{ "setparam ", DoSetParam },
{ "load_param ", LoadDefaultParams },
#endif
{ "export ", DoExport },
{ "setrlimit ", DoSetrlimit },
{ "exec ", DoExec },
{ "loadcfg ", DoLoadCfg },
{ "reboot ", DoReboot }
};
#ifndef OHOS_LITE
int GetParamValue(char *symValue, char *paramValue, unsigned int paramLen)
{
@@ -104,6 +71,7 @@ int GetParamValue(char *symValue, char *paramValue, unsigned int paramLen)
unsigned int tmpLen = 0;
char *p = NULL;
char *tmpptr = NULL;
p = strchr(symValue, '$');
if (p == NULL) { // not has '$' copy the original string
INIT_CHECK_ONLY_RETURN(strncpy_s(paramValue, paramLen, symValue,
@@ -140,7 +108,6 @@ int GetParamValue(char *symValue, char *paramValue, unsigned int paramLen)
if (*tmpptr != '\0') { // copy last string
INIT_CHECK_ONLY_RETURN(strncat_s(paramValue, paramLen, tmpptr, tmpLen) == EOK, return -1);
}
INIT_LOGI("paramValue is %s ", paramValue);
return 0;
} else {
INIT_LOGE("Invalid cfg file name, miss '{'.");
@@ -155,7 +122,8 @@ struct CmdArgs* GetCmd(const char *cmdContent, const char *delim)
INIT_CHECK_ONLY_RETURN(ctx != NULL, return NULL);
ctx->argv = (char**)malloc(sizeof(char *) * MAX_CMD_NAME_LEN);
INIT_CHECK_ONLY_RETURN(ctx->argv != NULL, FreeCmd(&ctx); return NULL);
INIT_CHECK_ONLY_RETURN(ctx->argv != NULL, FreeCmd(&ctx);
return NULL);
char tmpCmd[MAX_BUFFER];
INIT_CHECK_ONLY_RETURN(strncpy_s(tmpCmd, strlen(cmdContent) + 1, cmdContent, strlen(cmdContent)) == EOK,
@@ -169,13 +137,15 @@ struct CmdArgs* GetCmd(const char *cmdContent, const char *delim)
while (token != NULL) {
#ifndef OHOS_LITE
ctx->argv[ctx->argc] = calloc(sizeof(char), MAX_EACH_CMD_LENGTH + MAX_PARAM_VALUE_LEN);
INIT_CHECK_ONLY_RETURN(ctx->argv[ctx->argc] != NULL, FreeCmd(&ctx); return NULL);
INIT_CHECK_ONLY_RETURN(GetParamValue(token, ctx->argv[ctx->argc], MAX_EACH_CMD_LENGTH + MAX_PARAM_VALUE_LEN) == 0,
FreeCmd(&ctx);
INIT_CHECK_ONLY_RETURN(ctx->argv[ctx->argc] != NULL, FreeCmd(&ctx);
return NULL);
INIT_CHECK_ONLY_RETURN(GetParamValue(token, ctx->argv[ctx->argc],
MAX_EACH_CMD_LENGTH + MAX_PARAM_VALUE_LEN) == 0, FreeCmd(&ctx);
return NULL);
#else
ctx->argv[ctx->argc] = calloc(sizeof(char), MAX_EACH_CMD_LENGTH);
INIT_CHECK_ONLY_RETURN(ctx->argv[ctx->argc] != NULL, FreeCmd(&ctx); return NULL);
INIT_CHECK_ONLY_RETURN(ctx->argv[ctx->argc] != NULL, FreeCmd(&ctx);
return NULL);
INIT_CHECK_ONLY_RETURN(strncpy_s(ctx->argv[ctx->argc], strlen(cmdContent) + 1, token, strlen(token)) == EOK,
FreeCmd(&ctx);
return NULL);
@@ -204,41 +174,6 @@ void FreeCmd(struct CmdArgs **cmd)
return;
}
void ParseCmdLine(const char* cmdStr, CmdLine* resCmd)
{
size_t cmdLineLen = 0;
if (cmdStr == NULL || resCmd == NULL || (cmdLineLen = strlen(cmdStr)) == 0) {
return;
}
size_t supportCmdCnt = ARRAY_LENGTH(CMD_TABLE);
int foundAndSucceed = 0;
for (size_t i = 0; i < supportCmdCnt; ++i) {
size_t curCmdNameLen = strlen(CMD_TABLE[i].name);
if (cmdLineLen > curCmdNameLen && cmdLineLen <= (curCmdNameLen + MAX_CMD_CONTENT_LEN) &&
strncmp(CMD_TABLE[i].name, cmdStr, curCmdNameLen) == 0) {
if (memcpy_s(resCmd->name, MAX_CMD_NAME_LEN, cmdStr, curCmdNameLen) != EOK) {
break;
}
resCmd->name[curCmdNameLen] = '\0';
const char* cmdContent = cmdStr + curCmdNameLen;
size_t cmdContentLen = cmdLineLen - curCmdNameLen;
if (memcpy_s(resCmd->cmdContent, MAX_CMD_CONTENT_LEN, cmdContent, cmdContentLen) != EOK) {
break;
}
resCmd->cmdContent[cmdContentLen] = '\0';
foundAndSucceed = 1;
break;
}
}
if (!foundAndSucceed) {
INIT_LOGE("Cannot parse command: %s", cmdStr);
(void)memset_s(resCmd, sizeof(*resCmd), 0, sizeof(*resCmd));
}
}
static void DoStart(const char* cmdContent)
{
INIT_LOGD("DoStart %s ", cmdContent);
@@ -1004,6 +939,74 @@ static void DoMakeDevice(const char *cmdContent)
}
#endif // __LITEOS__
struct CmdTable {
char name[MAX_CMD_NAME_LEN];
void (*DoFuncion)(const char *cmdContent);
};
static const struct CmdTable CMD_TABLE[] = {
{ "start ", DoStart },
{ "mkdir ", DoMkDir },
{ "stop ", DoStop },
{ "reset ", DoReset },
{ "copy ", DoCopy },
{ "chmod ", DoChmod },
{ "chown ", DoChown },
{ "mount ", DoMount },
{ "write ", DoWrite },
{ "rmdir ", DoRmdir },
{ "rm ", DoRm },
#ifndef OHOS_LITE
{ "symlink ", DoSymlink },
{ "makedev ", DoMakeDevice },
{ "mknode ", DoMakeNode },
{ "insmod ", DoInsmod },
{ "trigger ", DoTriggerExec },
{ "setparam ", DoSetParam },
{ "load_param ", LoadDefaultParams },
#endif
{ "export ", DoExport },
{ "setrlimit ", DoSetrlimit },
{ "exec ", DoExec },
{ "loadcfg ", DoLoadCfg },
{ "reboot ", DoReboot }
};
void ParseCmdLine(const char* cmdStr, CmdLine* resCmd)
{
size_t cmdLineLen = 0;
if (cmdStr == NULL || resCmd == NULL || (cmdLineLen = strlen(cmdStr)) == 0) {
return;
}
size_t supportCmdCnt = ARRAY_LENGTH(CMD_TABLE);
int foundAndSucceed = 0;
for (size_t i = 0; i < supportCmdCnt; ++i) {
size_t curCmdNameLen = strlen(CMD_TABLE[i].name);
if (cmdLineLen > curCmdNameLen && cmdLineLen <= (curCmdNameLen + MAX_CMD_CONTENT_LEN) &&
strncmp(CMD_TABLE[i].name, cmdStr, curCmdNameLen) == 0) {
if (memcpy_s(resCmd->name, MAX_CMD_NAME_LEN, cmdStr, curCmdNameLen) != EOK) {
break;
}
resCmd->name[curCmdNameLen] = '\0';
const char* cmdContent = cmdStr + curCmdNameLen;
size_t cmdContentLen = cmdLineLen - curCmdNameLen;
if (memcpy_s(resCmd->cmdContent, MAX_CMD_CONTENT_LEN, cmdContent, cmdContentLen) != EOK) {
break;
}
resCmd->cmdContent[cmdContentLen] = '\0';
foundAndSucceed = 1;
break;
}
}
if (!foundAndSucceed) {
INIT_LOGE("Cannot parse command: %s", cmdStr);
(void)memset_s(resCmd, sizeof(*resCmd), 0, sizeof(*resCmd));
}
}
void DoCmd(const CmdLine* curCmd)
{
// null curCmd or empty command, just quit.
@@ -1021,7 +1024,7 @@ void DoCmdByName(const char *name, const char *cmdContent)
if (strncmp(name, "load_persist_params ", strlen("load_persist_params ")) == 0) {
LoadPersistParams();
} else {
size_t cmdCnt = ARRAY_LENGTH(CMD_TABLE);
size_t cmdCnt = sizeof(CMD_TABLE) / sizeof(CMD_TABLE[0]);
unsigned int i = 0;
for (; i < cmdCnt; ++i) {
if (strncmp(name, CMD_TABLE[i].name, strlen(CMD_TABLE[i].name)) == 0) {
@@ -1040,7 +1043,7 @@ const char *GetMatchCmd(const char *cmdStr)
if (cmdStr == NULL) {
return NULL;
}
size_t supportCmdCnt = ARRAY_LENGTH(CMD_TABLE);
size_t supportCmdCnt = sizeof(CMD_TABLE) / sizeof(CMD_TABLE[0]);
for (size_t i = 0; i < supportCmdCnt; ++i) {
size_t curCmdNameLen = strlen(CMD_TABLE[i].name);
if (strncmp(CMD_TABLE[i].name, cmdStr, curCmdNameLen) == 0) {
+1 -1
View File
@@ -627,7 +627,7 @@ void ParseAllServices(const cJSON* fileRoot)
SERVICES_ARR_NAME_IN_JSON, servArrSize);
Service* tmp = retServices + g_servicesCnt;
INIT_ERROR_CHECK_AND_RETURN(memset_s(tmp, sizeof(Service) * servArrSize, 0, sizeof(Service) * servArrSize) == EOK,
free(retServices), "memset_s failed errno: %d", errno);
free(retServices), "memset_s failed errno: %d", errno);
for (int i = 0; i < servArrSize; ++i) {
cJSON* curItem = cJSON_GetArrayItem(serviceArr, i);
if (CheckServiceKeyName(curItem) != SERVICE_SUCCESS) {