tools/nolibc: disable function sanitizer for _start_c()
Both constructors and main() may be executed with different function signatures than they are actually using. This is intentional but trips up UBSAN. Disable the function sanitizer of UBSAN in _start_c(). Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Acked-by: Willy Tarreau <w@1wt.eu> Link: https://lore.kernel.org/r/20250419-nolibc-ubsan-v2-3-060b8a016917@weissschuh.net
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
#ifndef _NOLIBC_CRT_H
|
||||
#define _NOLIBC_CRT_H
|
||||
|
||||
#include "compiler.h"
|
||||
|
||||
char **environ __attribute__((weak));
|
||||
const unsigned long *_auxv __attribute__((weak));
|
||||
|
||||
@@ -25,6 +27,9 @@ extern void (*const __fini_array_end[])(void) __attribute__((weak));
|
||||
|
||||
void _start_c(long *sp);
|
||||
__attribute__((weak,used))
|
||||
#if __nolibc_has_feature(undefined_behavior_sanitizer)
|
||||
__attribute__((no_sanitize("function")))
|
||||
#endif
|
||||
void _start_c(long *sp)
|
||||
{
|
||||
long argc;
|
||||
|
||||
Reference in New Issue
Block a user