<fix>
修复报警信息,为以下修复点 1、修复空指针未判断 2、修复open后未及时close 导致内存泄露 3、修复strdup后未free 4、修复赋值后未使用等问题 5、修复编码中判断条件中无符号变量小于零的情况 Signed-off-by: xiacong <xiacong4@huawei.com> Change-Id: I13d046141afeb8a116e6a04304a3793bf8e12bee Signed-off-by: xiacong <xiacong4@huawei.com>
This commit is contained in:
parent
044cf59583
commit
784429d0dc
|
@ -91,7 +91,7 @@ STATIC UINT64 SysTickReload(UINT64 nextResponseTime)
|
|||
|
||||
STATIC UINT64 SysTickCycleGet(UINT32 *period)
|
||||
{
|
||||
UINT32 hwCycle = 0;
|
||||
UINT32 hwCycle = 0;
|
||||
UINT32 intSave = LOS_IntLock();
|
||||
UINT32 val = SysTick->VAL;
|
||||
*period = SysTick->LOAD;
|
||||
|
|
|
@ -51,6 +51,7 @@ VOID HalSecureSVCHandler(UINT32 svcID, UINTPTR arg)
|
|||
HalSecureContextLoad(g_secureContext);
|
||||
break;
|
||||
case OS_SVC_FREE_SECURE_CONTEXT:
|
||||
LOS_ASSERT(g_secureContext != NULL);
|
||||
HalSecureContextFree(g_secureContext);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -51,6 +51,7 @@ VOID HalSecureSVCHandler(UINT32 svcID, UINTPTR arg)
|
|||
HalSecureContextLoad(g_secureContext);
|
||||
break;
|
||||
case OS_SVC_FREE_SECURE_CONTEXT:
|
||||
LOS_ASSERT(g_secureContext != NULL);
|
||||
HalSecureContextFree(g_secureContext);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -91,7 +91,7 @@ STATIC UINT64 SysTickReload(UINT64 nextResponseTime)
|
|||
|
||||
STATIC UINT64 SysTickCycleGet(UINT32 *period)
|
||||
{
|
||||
UINT32 hwCycle = 0;
|
||||
UINT32 hwCycle = 0;
|
||||
UINT32 intSave = LOS_IntLock();
|
||||
UINT32 val = SysTick->VAL;
|
||||
*period = SysTick->LOAD;
|
||||
|
|
|
@ -51,6 +51,7 @@ VOID HalSecureSVCHandler(UINT32 svcID, UINTPTR arg)
|
|||
HalSecureContextLoad(g_secureContext);
|
||||
break;
|
||||
case OS_SVC_FREE_SECURE_CONTEXT:
|
||||
LOS_ASSERT(g_secureContext != NULL);
|
||||
HalSecureContextFree(g_secureContext);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -51,6 +51,7 @@ VOID HalSecureSVCHandler(UINT32 svcID, UINTPTR arg)
|
|||
HalSecureContextLoad(g_secureContext);
|
||||
break;
|
||||
case OS_SVC_FREE_SECURE_CONTEXT:
|
||||
LOS_ASSERT(g_secureContext != NULL);
|
||||
HalSecureContextFree(g_secureContext);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -612,7 +612,7 @@ LITE_OS_SEC_TEXT_INIT VOID HalHwiInit(VOID)
|
|||
HalHwiHandleReInit((UINT32)&g_hwiForm);
|
||||
|
||||
HalSetVbr((UINT32)&g_hwiForm);
|
||||
for (int i = 0; i < BYTES_OF_128_INT; i++) {
|
||||
for (i = 0; i < BYTES_OF_128_INT; i++) {
|
||||
VIC_REG->IABR[i] = 0x0;
|
||||
VIC_REG->ICPR[i] = MASK_32_BITS;
|
||||
}
|
||||
|
|
|
@ -902,6 +902,10 @@ static int MapToPosixRet(int ret)
|
|||
/* POSIX interface */
|
||||
int LOS_Open(const char *path, int flags, ...)
|
||||
{
|
||||
if (path == NULL) {
|
||||
errno = EINVAL;
|
||||
return (int)LOS_NOK;
|
||||
}
|
||||
#ifdef LOSCFG_RANDOM_DEV
|
||||
unsigned flagMask = O_RDONLY | O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_LARGEFILE \
|
||||
| O_TRUNC | O_EXCL | O_DIRECTORY;
|
||||
|
@ -952,7 +956,7 @@ int LOS_Open(const char *path, int flags, ...)
|
|||
FREE_AND_SET_NULL(canonicalPath);
|
||||
#endif
|
||||
#if (LOSCFG_POSIX_PIPE_API == 1)
|
||||
if ((path != NULL) && !strncmp(path, PIPE_DEV_PATH, strlen(PIPE_DEV_PATH))) {
|
||||
if (!strncmp(path, PIPE_DEV_PATH, strlen(PIPE_DEV_PATH))) {
|
||||
return PipeOpen(path, flags, PIPE_DEV_FD);
|
||||
}
|
||||
#endif
|
||||
|
@ -1149,8 +1153,9 @@ int OsFcntl(int fd, int cmd, va_list ap)
|
|||
ret = VfsVfcntl(filep, cmd, ap);
|
||||
VfsDetachFile(filep);
|
||||
} else {
|
||||
#ifndef LOSCFG_NET_LWIP_SACK
|
||||
ret = -EBADF;
|
||||
#ifdef LOSCFG_NET_LWIP_SACK
|
||||
#else
|
||||
int arg = va_arg(ap, int);
|
||||
ret = lwip_fcntl(fd, (long)cmd, arg);
|
||||
return ret;
|
||||
|
@ -1182,8 +1187,9 @@ int OsIoctl(int fd, int req, va_list ap)
|
|||
if (fd < CONFIG_NFILE_DESCRIPTORS) {
|
||||
ret = VfsIoctl(fd, req, ap);
|
||||
} else {
|
||||
#ifndef LOSCFG_NET_LWIP_SACK
|
||||
ret = -EBADF;
|
||||
#ifdef LOSCFG_NET_LWIP_SACK
|
||||
#else
|
||||
UINTPTR arg = va_arg(ap, UINTPTR);
|
||||
ret = lwip_ioctl(fd, (long)req, (void *)arg);
|
||||
#endif /* LOSCFG_NET_LWIP_SACK */
|
||||
|
|
|
@ -47,7 +47,7 @@ int GetPartIdByPartName(const char *partName)
|
|||
|
||||
/* the character next to p is the partId */
|
||||
char *p = strrchr(partName, 'p');
|
||||
if (p + 1 != NULL) {
|
||||
if (p != NULL) {
|
||||
return atoi(p + 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -529,7 +529,7 @@ u32_t OsShellPing(int argc, const char **argv)
|
|||
{
|
||||
int ret;
|
||||
u32_t i = 0;
|
||||
u32_t count = 0;
|
||||
u32_t count;
|
||||
int count_set = 0;
|
||||
u32_t interval = 1000; /* default ping interval */
|
||||
u32_t data_len = 48; /* default data length */
|
||||
|
|
|
@ -67,7 +67,7 @@ int SysUserTaskCreate(unsigned long entry, unsigned long userArea, unsigned long
|
|||
|
||||
int SysSchedSetScheduler(unsigned int tid, int policy, int priority)
|
||||
{
|
||||
if ((tid <= 0) || (tid > LOSCFG_BASE_CORE_TSK_LIMIT)) {
|
||||
if ((tid == 0) || (tid > LOSCFG_BASE_CORE_TSK_LIMIT)) {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,7 @@ int *SysSchedGetArea(unsigned int tid)
|
|||
unsigned int intSave;
|
||||
int *area = NULL;
|
||||
|
||||
if ((tid <= 0) || (tid > LOSCFG_BASE_CORE_TSK_LIMIT)) {
|
||||
if ((tid == 0) || (tid > LOSCFG_BASE_CORE_TSK_LIMIT)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -544,11 +544,6 @@ STATIC INT32 OsShellCmdDoRmdir(const CHAR *pathname)
|
|||
}
|
||||
if (strcmp(dirent->d_name, "..") && strcmp(dirent->d_name, ".")) {
|
||||
size_t fullPathBufSize = strlen(pathname) + strlen(dirent->d_name) + SEPARATOR_EOF_LEN;
|
||||
if (fullPathBufSize <= 0) {
|
||||
PRINTK("buffer size is invalid!\n");
|
||||
(VOID)closedir(d);
|
||||
return -1;
|
||||
}
|
||||
fullpath = (CHAR *)malloc(fullPathBufSize);
|
||||
if (fullpath == NULL) {
|
||||
PRINTK("malloc failure!\n");
|
||||
|
|
|
@ -978,21 +978,17 @@ osStatus_t osEventFlagsDelete(osEventFlagsId_t ef_id)
|
|||
{
|
||||
PEVENT_CB_S pstEventCB = (PEVENT_CB_S)ef_id;
|
||||
UINT32 intSave;
|
||||
osStatus_t ret;
|
||||
osStatus_t ret = osOK;
|
||||
if (OS_INT_ACTIVE) {
|
||||
return osErrorISR;
|
||||
}
|
||||
intSave = LOS_IntLock();
|
||||
if (LOS_EventDestroy(pstEventCB) == LOS_OK) {
|
||||
ret = osOK;
|
||||
} else {
|
||||
if (LOS_EventDestroy(pstEventCB) != LOS_OK) {
|
||||
ret = osErrorParameter;
|
||||
}
|
||||
LOS_IntRestore(intSave);
|
||||
|
||||
if (LOS_MemFree(m_aucSysMem0, (void *)pstEventCB) == LOS_OK) {
|
||||
ret = osOK;
|
||||
} else {
|
||||
if (LOS_MemFree(m_aucSysMem0, (void *)pstEventCB) != LOS_OK) {
|
||||
ret = osErrorParameter;
|
||||
}
|
||||
|
||||
|
|
|
@ -501,7 +501,7 @@ time_t time(time_t *timer)
|
|||
{
|
||||
UINT64 usec = 0;
|
||||
time_t sec;
|
||||
INT32 rtcRet = 0;
|
||||
INT32 rtcRet;
|
||||
|
||||
if (g_rtcTimeFunc.RtcGetTimeHook != NULL) {
|
||||
rtcRet = g_rtcTimeFunc.RtcGetTimeHook(&usec);
|
||||
|
|
|
@ -1337,10 +1337,12 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsReaddir002, Function | MediumTest | L
|
|||
|
||||
dResult = readdir(dirp);
|
||||
TEST_ASSERT_NOT_NULL(dirp);
|
||||
TEST_ASSERT_NOT_NULL(dResult);
|
||||
tellDir0 = dResult->d_off;
|
||||
|
||||
dResult = readdir(dirp);
|
||||
TEST_ASSERT_NOT_NULL(dirp);
|
||||
TEST_ASSERT_NOT_NULL(dResult);
|
||||
tellDir1 = dResult->d_off;
|
||||
|
||||
TEST_ASSERT_TRUE(tellDir0 == tellDir1);
|
||||
|
@ -1496,9 +1498,8 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsStat002, Function | MediumTest | Leve
|
|||
TEST_ASSERT_TRUE(fd != -1);
|
||||
|
||||
size = write(fd, writeBuf, sizeof(writeBuf));
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
||||
(void)close(fd);
|
||||
TEST_ASSERT_TRUE(size != -1);
|
||||
|
||||
ret = stat(tmpFileName, &buf);
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
@ -1526,8 +1527,8 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsStat003, Function | MediumTest | Leve
|
|||
TEST_ASSERT_TRUE(fd != -1);
|
||||
|
||||
size = write(fd, writeBuf, sizeof(writeBuf));
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
(void)close(fd);
|
||||
TEST_ASSERT_TRUE(size != -1);
|
||||
|
||||
ret = stat(tmpFileName, &buf);
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
@ -1562,18 +1563,24 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsWrite001, Function | MediumTest | Lev
|
|||
TEST_ASSERT_TRUE(fd != -1);
|
||||
|
||||
ret = write(fd, writeBuf, TEST_RW_SIZE);
|
||||
if (ret == -1) {
|
||||
(void)close(fd);
|
||||
}
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
||||
reLseek = lseek(fd, 0, SEEK_CUR);
|
||||
|
||||
ret = write(fd, writeBuf, TEST_RW_SIZE);
|
||||
if (ret == -1) {
|
||||
(void)close(fd);
|
||||
}
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
||||
reLseek = lseek(fd, 0, SEEK_CUR);
|
||||
(void)close(fd);
|
||||
|
||||
TEST_ASSERT_TRUE((TEST_RW_SIZE + TEST_RW_SIZE) == (unsigned int)reLseek);
|
||||
|
||||
(void)close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1598,9 +1605,8 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsWrite002, Function | MediumTest | Lev
|
|||
for (i = 0; i < TEST_LOOPUP_TIME; i++) {
|
||||
ret = write(fd, writeBuf, sizeof(writeBuf));
|
||||
}
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
||||
(void)close(fd);
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
||||
ret = stat(tmpFileName, &statbuf);
|
||||
TEST_ASSERT_TRUE(ret != -1);
|
||||
|
|
|
@ -142,6 +142,7 @@ LITE_TEST_CASE(PosixStringFuncTestSuite, testStrStrdup001, Function | MediumTest
|
|||
char src[] = "hello world !";
|
||||
char *ret = strdup(src);
|
||||
TEST_ASSERT_EQUAL_CHAR_ARRAY(ret, src, sizeof(src) / sizeof(src[0]));
|
||||
free(ret);
|
||||
|
||||
char srcS[] = "This is String1";
|
||||
ret = strdup(srcS);
|
||||
|
|
Loading…
Reference in New Issue