From 526de0809abf0648df2ebbedf623512812893e60 Mon Sep 17 00:00:00 2001 From: guoshichao Date: Wed, 11 Sep 2024 16:38:12 +0800 Subject: [PATCH 1/4] moblib_bind: fix the variable uninit misra issue Signed-off-by: guoshichao --- libs/libc/modlib/modlib_bind.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/libc/modlib/modlib_bind.c b/libs/libc/modlib/modlib_bind.c index 33750bc7f54dd..b7202d8490562 100644 --- a/libs/libc/modlib/modlib_bind.c +++ b/libs/libc/modlib/modlib_bind.c @@ -607,7 +607,7 @@ static int modlib_relocatedyn(FAR struct module_s *modp, /* Assume DT_RELA to get maximum size required */ - rels = lib_malloc(CONFIG_MODLIB_RELOCATION_BUFFERCOUNT * sizeof(Elf_Rela)); + rels = lib_zalloc(CONFIG_MODLIB_RELOCATION_BUFFERCOUNT * sizeof(Elf_Rela)); if (!rels) { berr("Failed to allocate memory for elf relocation rels\n"); @@ -774,7 +774,10 @@ static int modlib_relocatedyn(FAR struct module_s *modp, } else { - Elf_Sym dynsym; + Elf_Sym dynsym = + { + 0 + }; addr = rel->r_offset - loadinfo->datasec + loadinfo->datastart; From 45cc38deafe9a01309c05d59806724d8c484bc4b Mon Sep 17 00:00:00 2001 From: guoshichao Date: Mon, 9 Sep 2024 14:57:54 +0800 Subject: [PATCH 2/4] pthread_mutexattr_setprotocol: remove the unreached dead code Signed-off-by: guoshichao --- .../pthread/pthread_mutexattr_setprotocol.c | 35 ++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/libs/libc/pthread/pthread_mutexattr_setprotocol.c b/libs/libc/pthread/pthread_mutexattr_setprotocol.c index 28c53772d51d2..9233891ab8c86 100644 --- a/libs/libc/pthread/pthread_mutexattr_setprotocol.c +++ b/libs/libc/pthread/pthread_mutexattr_setprotocol.c @@ -54,38 +54,33 @@ int pthread_mutexattr_setprotocol(FAR pthread_mutexattr_t *attr, linfo("attr=%p protocol=%d\n", attr, protocol); DEBUGASSERT(attr != NULL); - if (protocol >= PTHREAD_PRIO_NONE && protocol <= PTHREAD_PRIO_PROTECT) + switch (protocol) { - switch (protocol) - { - case PTHREAD_PRIO_NONE: + case PTHREAD_PRIO_NONE: #if defined(CONFIG_PRIORITY_INHERITANCE) || defined(CONFIG_PRIORITY_PROTECT) - attr->proto = PTHREAD_PRIO_INHERIT; + attr->proto = PTHREAD_PRIO_INHERIT; #endif - break; + break; - case PTHREAD_PRIO_INHERIT: + case PTHREAD_PRIO_INHERIT: #ifdef CONFIG_PRIORITY_INHERITANCE - attr->proto = PTHREAD_PRIO_INHERIT; - break; + attr->proto = PTHREAD_PRIO_INHERIT; + break; #else - return ENOTSUP; + return ENOTSUP; #endif /* CONFIG_PRIORITY_INHERITANCE */ - case PTHREAD_PRIO_PROTECT: + case PTHREAD_PRIO_PROTECT: #ifdef CONFIG_PRIORITY_PROTECT - attr->proto = PTHREAD_PRIO_PROTECT; - break; + attr->proto = PTHREAD_PRIO_PROTECT; + break; #else - return ENOTSUP; + return ENOTSUP; #endif /* CONFIG_PRIORITY_PROTECT */ - default: - return ENOTSUP; - } - - return OK; + default: + return EINVAL; } - return EINVAL; + return OK; } From a603a7066c8b298137e8d88d6cca05e35df487be Mon Sep 17 00:00:00 2001 From: guoshichao Date: Mon, 9 Sep 2024 15:06:13 +0800 Subject: [PATCH 3/4] hcreate: fix using the uninit value misra issue Signed-off-by: guoshichao --- libs/libc/search/hcreate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/libc/search/hcreate.c b/libs/libc/search/hcreate.c index ae64ec9676ae7..f3ea5c3dd6b3e 100644 --- a/libs/libc/search/hcreate.c +++ b/libs/libc/search/hcreate.c @@ -132,7 +132,7 @@ void hdestroy(void) FAR ENTRY *hsearch(ENTRY item, ACTION action) { - FAR ENTRY *retval; + FAR ENTRY *retval = NULL; hsearch_r(item, action, &retval, &g_htab); From 1a5107baa48d53736a02e42446684303e75bb689 Mon Sep 17 00:00:00 2001 From: guoshichao Date: Thu, 5 Sep 2024 10:47:02 +0800 Subject: [PATCH 4/4] fs_fcntl: fix the ret value not check error add ret value check on file_seek function to compat with misra rule Signed-off-by: guoshichao --- fs/vfs/fs_fcntl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/vfs/fs_fcntl.c b/fs/vfs/fs_fcntl.c index 44bdcd665224e..e2c9fe6376934 100644 --- a/fs/vfs/fs_fcntl.c +++ b/fs/vfs/fs_fcntl.c @@ -159,7 +159,7 @@ static int file_vfcntl(FAR struct file *filep, int cmd, va_list ap) if ((filep->f_oflags & O_APPEND) != 0) { - file_seek(filep, 0, SEEK_END); + ret = file_seek(filep, 0, SEEK_END); } } }