提交 8d980ded 编写于 作者: Z zhushengle

fix: codecheck问题清零

1.shell初始化异常流程double free
2.los_disk_init中冗余初始化
3.OsKProcessPmUsage 中OsUProcessPmUsage异常退出时,存在使用未初始化的变量
4.HiLogHeadInit异常推出后,存在使用未初始化的变量
5.api_shell.c 中存在冗余初始化

fix #I63H5G
Signed-off-by: Nzhushengle <zhushengle@huawei.com>
Change-Id: If17d8ed1e6f2276e20fbce24b32de169bfd22e54
上级 b5ce4d34
...@@ -49,7 +49,7 @@ ShellCB *OsGetShellCb() ...@@ -49,7 +49,7 @@ ShellCB *OsGetShellCb()
return g_shellCB; return g_shellCB;
} }
void ShellDeinit(ShellCB *shellCB) static void ShellDeinit(ShellCB *shellCB)
{ {
(void)pthread_mutex_destroy(&shellCB->historyMutex); (void)pthread_mutex_destroy(&shellCB->historyMutex);
(void)pthread_mutex_destroy(&shellCB->keyMutex); (void)pthread_mutex_destroy(&shellCB->keyMutex);
...@@ -65,27 +65,23 @@ static int OsShellCreateTask(ShellCB *shellCB) ...@@ -65,27 +65,23 @@ static int OsShellCreateTask(ShellCB *shellCB)
ret = sched_getparam(getpid(), &param); ret = sched_getparam(getpid(), &param);
if (ret != SH_OK) { if (ret != SH_OK) {
goto OUT; return ret;
} }
param.sched_priority = SHELL_PROCESS_PRIORITY_INIT; param.sched_priority = SHELL_PROCESS_PRIORITY_INIT;
ret = sched_setparam(getpid(), &param); ret = sched_setparam(getpid(), &param);
if (ret != SH_OK) { if (ret != SH_OK) {
goto OUT; return ret;
} }
ret = ShellTaskInit(shellCB); ret = ShellTaskInit(shellCB);
if (ret != SH_OK) { if (ret != SH_OK) {
goto OUT; return ret;
} }
shellCB->shellEntryHandle = pthread_self(); shellCB->shellEntryHandle = pthread_self();
return 0; return 0;
OUT:
ShellDeinit(shellCB);
return ret;
} }
static int DoShellExec(char **argv) static int DoShellExec(char **argv)
...@@ -148,7 +144,7 @@ int main(int argc, char **argv) ...@@ -148,7 +144,7 @@ int main(int argc, char **argv)
shellCB = (ShellCB *)malloc(sizeof(ShellCB)); shellCB = (ShellCB *)malloc(sizeof(ShellCB));
if (shellCB == NULL) { if (shellCB == NULL) {
goto ERR_OUT1; return SH_NOK;
} }
ret = memset_s(shellCB, sizeof(ShellCB), 0, sizeof(ShellCB)); ret = memset_s(shellCB, sizeof(ShellCB), 0, sizeof(ShellCB));
if (ret != SH_OK) { if (ret != SH_OK) {
...@@ -176,7 +172,9 @@ int main(int argc, char **argv) ...@@ -176,7 +172,9 @@ int main(int argc, char **argv)
g_shellCB = shellCB; g_shellCB = shellCB;
ret = OsShellCreateTask(shellCB); ret = OsShellCreateTask(shellCB);
if (ret != SH_OK) { if (ret != SH_OK) {
goto ERR_OUT3; ShellDeinit(shellCB);
g_shellCB = NULL;
return ret;
} }
ShellEntry(shellCB); ShellEntry(shellCB);
......
...@@ -1465,7 +1465,7 @@ INT32 los_disk_init(const CHAR *diskName, const struct block_operations *bops, ...@@ -1465,7 +1465,7 @@ INT32 los_disk_init(const CHAR *diskName, const struct block_operations *bops,
ret = VnodeLookup(diskName, &blkDriver, 0); ret = VnodeLookup(diskName, &blkDriver, 0);
if (ret < 0) { if (ret < 0) {
VnodeDrop(); VnodeDrop();
ret = ENOENT; PRINT_ERR("disk_init : %s, failed to find the vnode, ERRNO=%d\n", diskName, ret);
goto DISK_FIND_ERROR; goto DISK_FIND_ERROR;
} }
struct block_operations *bops2 = (struct block_operations *)((struct drv_data *)blkDriver->data)->ops; struct block_operations *bops2 = (struct block_operations *)((struct drv_data *)blkDriver->data)->ops;
......
...@@ -146,7 +146,6 @@ UINT32 OsKProcessPmUsage(LosVmSpace *kSpace, UINT32 *actualPm) ...@@ -146,7 +146,6 @@ UINT32 OsKProcessPmUsage(LosVmSpace *kSpace, UINT32 *actualPm)
LosVmSpace *space = NULL; LosVmSpace *space = NULL;
LOS_DL_LIST *spaceList = NULL; LOS_DL_LIST *spaceList = NULL;
UINT32 UProcessUsed = 0; UINT32 UProcessUsed = 0;
UINT32 pmTmp;
if (actualPm == NULL) { if (actualPm == NULL) {
return 0; return 0;
...@@ -167,8 +166,7 @@ UINT32 OsKProcessPmUsage(LosVmSpace *kSpace, UINT32 *actualPm) ...@@ -167,8 +166,7 @@ UINT32 OsKProcessPmUsage(LosVmSpace *kSpace, UINT32 *actualPm)
if (space == LOS_GetKVmSpace()) { if (space == LOS_GetKVmSpace()) {
continue; continue;
} }
(VOID)OsUProcessPmUsage(space, NULL, &pmTmp); UProcessUsed += OsUProcessPmUsage(space, NULL, NULL);
UProcessUsed += pmTmp;
} }
(VOID)LOS_MuxRelease(vmSpaceListMux); (VOID)LOS_MuxRelease(vmSpaceListMux);
......
...@@ -233,14 +233,8 @@ static int HiLogWriteRingBuffer(unsigned char *buffer, size_t bufLen) ...@@ -233,14 +233,8 @@ static int HiLogWriteRingBuffer(unsigned char *buffer, size_t bufLen)
static void HiLogHeadInit(struct HiLogEntry *header, size_t len) static void HiLogHeadInit(struct HiLogEntry *header, size_t len)
{ {
struct timespec now; struct timespec now = {0};
int ret; (void)clock_gettime(CLOCK_REALTIME, &now);
ret = clock_gettime(CLOCK_REALTIME, &now);
if (ret != 0) {
PRINTK("In %s line %d,clock_gettime fail\n", __FUNCTION__, __LINE__);
return;
}
header->len = len; header->len = len;
header->pid = LOS_GetCurrProcessID(); header->pid = LOS_GetCurrProcessID();
......
...@@ -2175,8 +2175,6 @@ u32_t osShellPing6(int argc, const char **argv) ...@@ -2175,8 +2175,6 @@ u32_t osShellPing6(int argc, const char **argv)
/* Setting the start time of the entire ping task for statistics */ /* Setting the start time of the entire ping task for statistics */
(void)clock_gettime(CLOCK_MONOTONIC_RAW, &first); (void)clock_gettime(CLOCK_MONOTONIC_RAW, &first);
nsent = 0;
for (nsent = 0; nsent < ping6_params.pingcount; nsent++) { for (nsent = 0; nsent < ping6_params.pingcount; nsent++) {
/* capture the start tick to calculate rtt */ /* capture the start tick to calculate rtt */
(void)clock_gettime(CLOCK_MONOTONIC_RAW, &start); (void)clock_gettime(CLOCK_MONOTONIC_RAW, &start);
...@@ -3170,7 +3168,6 @@ void netstat_internal(void *ctx) ...@@ -3170,7 +3168,6 @@ void netstat_internal(void *ctx)
} }
/* For listen PCBs */ /* For listen PCBs */
recvQlen = 0;
sendQlen = 0; sendQlen = 0;
for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) {
...@@ -3670,7 +3667,7 @@ u32_t netdebug_sock(int argc, const char **argv) ...@@ -3670,7 +3667,7 @@ u32_t netdebug_sock(int argc, const char **argv)
int idx; int idx;
u32_t ret = LOS_NOK; u32_t ret = LOS_NOK;
if (argc == 2) { if (argc == 2) { /* 2: Number of command parameters */
if (!strcmp("-i", argv[1])) { if (!strcmp("-i", argv[1])) {
/* netdebug sock -i */ /* netdebug sock -i */
for (idx = 0; idx < (int)LWIP_CONFIG_NUM_SOCKETS; idx++) { for (idx = 0; idx < (int)LWIP_CONFIG_NUM_SOCKETS; idx++) {
...@@ -3678,10 +3675,9 @@ u32_t netdebug_sock(int argc, const char **argv) ...@@ -3678,10 +3675,9 @@ u32_t netdebug_sock(int argc, const char **argv)
} }
ret = LOS_OK; ret = LOS_OK;
} }
} else if (argc == 3) { } else if (argc == 3) { /* 3: Number of command parameters */
if (!strcmp("-d", argv[1])) { if (!strcmp("-d", argv[1])) {
/* netdebug sock -d <idx> */ idx = atoi(argv[2]); /* 2: netdebug sock -d <idx> */
idx = atoi(argv[2]);
if (idx >= 0) { if (idx >= 0) {
debug_socket_info(idx, 1, 1); debug_socket_info(idx, 1, 1);
ret = LOS_OK; ret = LOS_OK;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册