You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2021/11/02 20:02:52 UTC
[incubator-nuttx] branch master updated (2d4906a -> c52a099)
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git.
from 2d4906a Small clarification in the making-changes.rst documentation.
new c82a676 sim: fix sim runtime err under sanitize check mode.
new 3e967f7 sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN
new c52a099 sim: Add more config to asan/kasan for testing
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
arch/sim/Kconfig | 9 ++++++++-
arch/sim/src/sim/up_initialstate.c | 6 ++++++
boards/sim/sim/sim/configs/asan/defconfig | 15 ++++++++++++++-
boards/sim/sim/sim/configs/kasan/defconfig | 11 +++++++++++
boards/sim/sim/sim/scripts/Make.defs | 20 +++++++++++++++-----
5 files changed, 54 insertions(+), 7 deletions(-)
[incubator-nuttx] 03/03: sim: Add more config to asan/kasan for
testing
Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit c52a0991977833553408ee3c09cddb6bc85125ff
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Oct 30 22:41:59 2021 +0800
sim: Add more config to asan/kasan for testing
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
boards/sim/sim/sim/configs/asan/defconfig | 12 ++++++++++++
boards/sim/sim/sim/configs/kasan/defconfig | 11 +++++++++++
2 files changed, 23 insertions(+)
diff --git a/boards/sim/sim/sim/configs/asan/defconfig b/boards/sim/sim/sim/configs/asan/defconfig
index 356ea01..7220986 100644
--- a/boards/sim/sim/sim/configs/asan/defconfig
+++ b/boards/sim/sim/sim/configs/asan/defconfig
@@ -12,22 +12,34 @@ CONFIG_ARCH_CHIP="sim"
CONFIG_ARCH_SIM=y
CONFIG_BOARDCTL_POWEROFF=y
CONFIG_BUILTIN=y
+CONFIG_CANCELLATION_POINTS=y
+CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEV_LOOP=y
CONFIG_DEV_ZERO=y
CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_AIO=y
CONFIG_FS_BINFS=y
+CONFIG_FS_NAMED_SEMAPHORES=y
CONFIG_FS_PROCFS=y
CONFIG_MM_CUSTOMIZE_MANAGER=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
+CONFIG_PTHREAD_CLEANUP=y
+CONFIG_PTHREAD_MUTEX_TYPES=y
+CONFIG_PTHREAD_MUTEX_UNSAFE=y
CONFIG_READLINE_TABCOMPLETION=y
+CONFIG_RR_INTERVAL=10
CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_ONEXIT=y
CONFIG_SCHED_WAITPID=y
+CONFIG_SIG_DEFAULT=y
+CONFIG_SIG_EVTHREAD=y
CONFIG_SIM_ASAN=y
CONFIG_SIM_UBSAN=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_OSTEST_AIO=y
CONFIG_USER_ENTRYPOINT="nsh_main"
diff --git a/boards/sim/sim/sim/configs/kasan/defconfig b/boards/sim/sim/sim/configs/kasan/defconfig
index 1a98918..2a5d9b9b 100644
--- a/boards/sim/sim/sim/configs/kasan/defconfig
+++ b/boards/sim/sim/sim/configs/kasan/defconfig
@@ -12,21 +12,32 @@ CONFIG_ARCH_CHIP="sim"
CONFIG_ARCH_SIM=y
CONFIG_BOARDCTL_POWEROFF=y
CONFIG_BUILTIN=y
+CONFIG_CANCELLATION_POINTS=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEV_LOOP=y
CONFIG_DEV_ZERO=y
CONFIG_EXAMPLES_HELLO=y
+CONFIG_FS_AIO=y
CONFIG_FS_BINFS=y
+CONFIG_FS_NAMED_SEMAPHORES=y
CONFIG_FS_PROCFS=y
CONFIG_MM_KASAN=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_READLINE=y
+CONFIG_PTHREAD_CLEANUP=y
+CONFIG_PTHREAD_MUTEX_TYPES=y
+CONFIG_PTHREAD_MUTEX_UNSAFE=y
CONFIG_READLINE_TABCOMPLETION=y
+CONFIG_RR_INTERVAL=10
CONFIG_SCHED_HAVE_PARENT=y
+CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_ONEXIT=y
CONFIG_SCHED_WAITPID=y
+CONFIG_SIG_DEFAULT=y
+CONFIG_SIG_EVTHREAD=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_OSTEST_AIO=y
CONFIG_USER_ENTRYPOINT="nsh_main"
[incubator-nuttx] 02/03: sim: Split SIM_SANITIZE to SIM_ASAN and
SIM_UBSAN
Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 3e967f784ecca96f1c7688ecd6963608dc2f770c
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Oct 30 23:45:34 2021 +0800
sim: Split SIM_SANITIZE to SIM_ASAN and SIM_UBSAN
align the naming style with MM_ASAN
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
arch/sim/Kconfig | 9 ++++++++-
boards/sim/sim/sim/configs/asan/defconfig | 3 ++-
boards/sim/sim/sim/scripts/Make.defs | 20 +++++++++++++++-----
3 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/arch/sim/Kconfig b/arch/sim/Kconfig
index ea2d962..455abd4 100644
--- a/arch/sim/Kconfig
+++ b/arch/sim/Kconfig
@@ -58,7 +58,7 @@ config SIM_CYGWIN_DECORATED
run: It will crash early, probably in some function due to the failure to
allocate memory.
-config SIM_SANITIZE
+config SIM_ASAN
bool "Address Sanitizer"
default n
depends on MM_CUSTOMIZE_MANAGER
@@ -66,6 +66,13 @@ config SIM_SANITIZE
AddressSanitizer (ASan) is a fast compiler-based tool for detecting memory
bugs in native code.
+config SIM_UBSAN
+ bool "Undefined Behaviour Sanitizer"
+ default n
+ ---help---
+ Compile-time instrumentation is used to detect various undefined behaviours
+ at runtime.
+
choice
prompt "X64_64 ABI"
default SIM_X8664_SYSTEMV if HOST_LINUX
diff --git a/boards/sim/sim/sim/configs/asan/defconfig b/boards/sim/sim/sim/configs/asan/defconfig
index f656a29..356ea01 100644
--- a/boards/sim/sim/sim/configs/asan/defconfig
+++ b/boards/sim/sim/sim/configs/asan/defconfig
@@ -26,7 +26,8 @@ CONFIG_READLINE_TABCOMPLETION=y
CONFIG_SCHED_HAVE_PARENT=y
CONFIG_SCHED_ONEXIT=y
CONFIG_SCHED_WAITPID=y
-CONFIG_SIM_SANITIZE=y
+CONFIG_SIM_ASAN=y
+CONFIG_SIM_UBSAN=y
CONFIG_SYSTEM_NSH=y
CONFIG_TESTING_OSTEST=y
CONFIG_USER_ENTRYPOINT="nsh_main"
diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs
index 119d6a1..586ed24 100644
--- a/boards/sim/sim/sim/scripts/Make.defs
+++ b/boards/sim/sim/sim/scripts/Make.defs
@@ -129,14 +129,19 @@ ifeq ($(CONFIG_LIBCXX),y)
endif
endif
-ifeq ($(CONFIG_SIM_SANITIZE),y)
- CFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
- CXXFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+ifeq ($(CONFIG_SIM_ASAN),y)
+ CFLAGS += -fsanitize=address -fno-omit-frame-pointer
+ CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
else ifeq ($(CONFIG_MM_KASAN),y)
CFLAGS += -fsanitize=kernel-address
CXXFLAGS += -fsanitize=kernel-address
endif
+ifeq ($(CONFIG_SIM_UBSAN),y)
+ CFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+ CXXFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+endif
+
# Loadable module definitions
CMODULEFLAGS = $(CFLAGS)
@@ -200,11 +205,16 @@ ifeq ($(CONFIG_SIM_M32),y)
HOSTLDFLAGS += -m32
endif
-ifeq ($(CONFIG_SIM_SANITIZE),y)
- CCLINKFLAGS += -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
+ifeq ($(CONFIG_SIM_ASAN),y)
+ CCLINKFLAGS += -fsanitize=address -fno-omit-frame-pointer
else ifeq ($(CONFIG_MM_KASAN),y)
CCLINKFLAGS += -fsanitize=kernel-address
endif
+ifeq ($(CONFIG_SIM_UBSAN),y)
+ CCLINKFLAGS += -fsanitize=undefined -fno-omit-frame-pointer
+endif
+
+
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
$(ARCHCPUFLAGS) $(HOSTINCLUDES) $(EXTRAFLAGS) -D__SIM__ -pipe
[incubator-nuttx] 01/03: sim: fix sim runtime err under sanitize
check mode.
Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit c82a67663038ca9a1b47d46639995d74f3e5514c
Author: mage1 <ma...@xiaomi.com>
AuthorDate: Wed Mar 17 15:41:18 2021 +0800
sim: fix sim runtime err under sanitize check mode.
since gcc sanitize can not stub proper code in nuttx kernel code.
---
arch/sim/src/sim/up_initialstate.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/sim/src/sim/up_initialstate.c b/arch/sim/src/sim/up_initialstate.c
index 1b11ebb..eba0bd1 100644
--- a/arch/sim/src/sim/up_initialstate.c
+++ b/arch/sim/src/sim/up_initialstate.c
@@ -26,6 +26,9 @@
#include <stdint.h>
#include <string.h>
+#ifdef CONFIG_SIM_ASAN
+#include <sanitizer/asan_interface.h>
+#endif
#include <nuttx/arch.h>
@@ -83,4 +86,7 @@ void up_initial_state(struct tcb_s *tcb)
tcb->adj_stack_size -
sizeof(xcpt_reg_t);
tcb->xcp.regs[JB_PC] = (xcpt_reg_t)tcb->start;
+#ifdef CONFIG_SIM_ASAN
+ __asan_unpoison_memory_region(tcb->stack_alloc_ptr, tcb->adj_stack_size);
+#endif
}