修复codex告警。

【背景】
1.components\fs\fs.c,g_fs判空顺序错误
2.components\shell\src\cmds\task_shellcmd.c,参数多余
3.components\shell\src\cmds\vfs_shellcmd.c,遗漏内存释放
4.kal\posix\src\pthread_mutex.c,timeout计算可能溢出

【修改方案】
1.调换g_fs判空顺序
2.去掉多余的参数
3.return前添加free函数
4.修改timeout计算方法防止溢出

【影响】
无

Change-Id: Ib6d56c92a0be01ca49222148c341db18afe72544
Signed-off-by: pef <cyd1997@126.com>
This commit is contained in:
pef 2021-11-06 06:52:25 +00:00
parent a55fd7c6d1
commit 923c05cd89
4 changed files with 15 additions and 15 deletions

View File

@ -347,14 +347,15 @@ ssize_t read(int fd, void *buf, size_t nbyte)
return recv(fd, buf, nbyte, 0);
}
#endif
if (g_fs->fsFops == NULL || g_fs->fsFops->Read == NULL) {
errno = ENOSYS;
return FS_FAILURE;
}
if (g_fs == NULL) {
errno = ENODEV;
return FS_FAILURE;
}
if (g_fs->fsFops == NULL || g_fs->fsFops->Read == NULL) {
errno = ENOSYS;
return FS_FAILURE;
}
return g_fs->fsFops->Read(fd, buf, nbyte);
}

View File

@ -89,7 +89,6 @@ LITE_OS_SEC_TEXT_MINOR STATIC VOID OsShellCmdTskInfoData(const LosTaskCB *allTas
{
const LosTaskCB *taskCB = NULL;
UINT32 loop;
UINT32 semId;
for (loop = 0; loop < g_taskMaxNum; ++loop) {
taskCB = allTaskArray + loop;
@ -97,12 +96,10 @@ LITE_OS_SEC_TEXT_MINOR STATIC VOID OsShellCmdTskInfoData(const LosTaskCB *allTas
continue;
}
semId = OsGetSemID(taskCB);
PRINTK("%-23s%-20p0x%-5x", taskCB->taskName, taskCB->taskEntry, taskCB->taskID);
PRINTK("%-11u%-13s0x%-11x 0x%-8x 0x%-10x ", taskCB->priority,
OsShellCmdConvertTskStatus(taskCB->taskStatus), taskCB->stackSize,
taskCB->stackPointer, taskCB->topOfStack, semId);
taskCB->stackPointer, taskCB->topOfStack);
PRINTK("\n");
}
}

View File

@ -276,6 +276,7 @@ int OsShellCmdCat(int argc, const char **argv)
if (fd == -1) {
ret = -1;
free(fullpath);
return ret;
}

View File

@ -38,6 +38,7 @@
#define OS_SYS_NS_PER_MSECOND 1000000
#define OS_SYS_NS_PER_SECOND 1000000000
#define OS_UINT_MAX (~0U)
static inline int MapError(UINT32 err)
{
@ -99,8 +100,7 @@ int pthread_mutex_destroy(pthread_mutex_t *mutex)
int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *absTimeout)
{
UINT32 ret;
UINT32 timeout;
UINT64 timeoutNs;
INT64 timeoutMs;
struct timespec curTime = {0};
if ((mutex->magic != _MUX_MAGIC) || (absTimeout->tv_nsec < 0) || (absTimeout->tv_nsec >= OS_SYS_NS_PER_SECOND)) {
return EINVAL;
@ -115,12 +115,13 @@ int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *absTi
if (ret != LOS_OK) {
return EINVAL;
}
timeoutNs = (absTimeout->tv_sec - curTime.tv_sec) * OS_SYS_NS_PER_SECOND + (absTimeout->tv_nsec - curTime.tv_nsec);
if (timeoutNs <= 0) {
return ETIMEDOUT;
timeoutMs = (absTimeout->tv_sec - curTime.tv_sec) * OS_SYS_MS_PER_SECOND +
(absTimeout->tv_nsec - curTime.tv_nsec) / OS_SYS_NS_PER_MSECOND;
if (timeoutMs < 0 || timeoutMs >= OS_UINT_MAX) {
return EINVAL;
}
timeout = (timeoutNs + (OS_SYS_NS_PER_MSECOND - 1)) / OS_SYS_NS_PER_MSECOND;
ret = LOS_MuxPend(mutex->handle, timeout);
ret = LOS_MuxPend(mutex->handle, (UINT32)timeoutMs);
return MapError(ret);
}