问题标签 [sanitizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
110 浏览

c++ - 使用 sanitize=vptr 时对“__dynamic_cast”的未定义引用

我建立vfptr.cpp一个fsanitize=vptr文件static。它有关于“未定义的 __dynamic_cast 引用”的错误消息。g++7.4.0 和 g++11.0.0 都有问题。使用 sanitizer=vptr 是否合理?

vptr.cpp

编译选项

错误信息:

0 投票
1 回答
81 浏览

c++ - C++ 类型索引散列导致未定义的行为

按照https://en.cppreference.com/w/cpp/types/type_index上的示例进行编译,会-fsanitize=address,integer,undefined发现未定义的行为。代码是:

在编译并运行后产生:

正如所见,clang 抱怨用户定义类型的未定义行为。有人知道不会导致未定义行为的正确实现是什么样的吗?

0 投票
0 回答
376 浏览

clang - Clang++ LSAN 和 UBSAN 导致对 `__ubsan_handle_add_overflow' 的未定义引用

当我在使用编译器清理程序时,当仅在clang++.

请注意,当我删除-fsanitize=leak或添加这些标志时,链接问题消失了:-fsanitize=leak -fsanitize-trap=undefined.

另请注意,这种奇怪的链接错误似乎只在使用clang++. g++在下面显示的所有情况下都工作得很好。

任何线索都可能有所帮助。谢谢。

main.cpp如果您需要(您可能永远不会这样做)的源代码:

0 投票
1 回答
336 浏览

security - 了解由未定义行为清理程序 (UBSan) 触发的运行时错误

启用未定义的消毒剂时,我在 GNU 科学库 (GSL) 中发现运行时错误:

但我不知道如何导致这些错误,或者如何修复它们。有人可以帮忙解释一下吗?此外,是否应该向开发人员提出一个重要的问题(例如,这种蜜蜂是否可以被用作安全攻击)?

源代码“deque.c”可以在这里找到,运行时错误的相关行如下所示(错误出现在第58、59、60、61行)。

在此处输入图像描述

deque 的定义在这里,在同一个文件中:

这里

[添加]代码调用如下,在GSL 的 movstat 库deque_initmmacc.c

上面代码中的函数引用了GSL的movstat库中ringbuf_size的以下代码。ringbuf.c

0 投票
2 回答
643 浏览

gcc - 如何在使用 g++ 编译时修复“ld: library not found for -lubsan”?

当我尝试使用标志编译我的eek.cpp文件时,它显示:g++ eek.cpp -o eek -fsanitize=undefined

g++ eek.cpp -o eek工作正常。 我的终端截图在这里。

我在 macOS Big Sur 上使用 zsh 和 gcc 10.2.0。fsanitize=undefined在我从 Catalina 更新我的 macOS 之前,昨天还在工作。

ubsan.h文件确实存在于 中/usr/local/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/x86_64-apple-darwin20/10.2.0/plugin/include,但它不起作用。我也读过这篇文章,但它并没有解决我的问题。我应该如何解决它?

0 投票
1 回答
145 浏览

arm64 - llvm/ompiler-rt sanitizer 不支持 aarch64 ilp32:asan_interceptors_vfork.S 与 aarch64 ilp32 不兼容

我正在从编译器-rt(https://github.com/llvm/llvm-project )构建 libasan.so,在使用https://patches.linaro.org/patch/129368/修补源之后,所有 cpp 都可以正确构建。但是我被 ASM (asan/asan_interceptors_vfork.S) 阻止了,在 aarch64 中,这指的是https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc。年代

错误信息:

我猜背后的原因是 asan_interceptors_vfork.S 是默认的 ILP64 格式?

ps:我在构建 asan_interceptors_vfork.So 时确实有 -fPIC

0 投票
0 回答
84 浏览

c++ - 禁止特定的消毒剂检查,但在所有其他程序上仍然失败

我想抑制第三方库中的一个错误,但在任何其他失败的检查中仍然让程序退出 1。在我看来,无论文件的内容如何,-fno-sanitize-recover​​都会退出程序。另一方面,指定的错误被正确抑制,另一个错误仍然打印,但程序正常退出,这是我不想要的suppressions-fsanitize-recover

我怎样才能达到预期的行为?Ubsan 抑制和 -fno-sanitize-recover 真的相互排斥吗?

0 投票
1 回答
70 浏览

angular - This.sanitizer 在 NgOninit 函数(Angular,TS)之外未定义

首先,我将 DomSanitizer 导入到组件中:

之后,我创建了一个类并将其添加到构造函数中:

在 NgOnInit 函数内部,它可以正常工作,但是,在 updateURL 函数中(在 NgOnInit 外部但在类内部)它说 this.sanitizer 未定义:

我知道这是一个典型的问题,在我身上发生了很多次,但是现在我不知道如何解决它。我试图在不同的论坛中寻找未定义的问题,但我仍然无法解决它。非常感谢你

0 投票
0 回答
60 浏览

compiler-errors - 如何在 LLVM 项目中使用来自 interception.h 的 INTERCEPTOR?

我想截取一些功能并为它们添加一些功能。

我发现llvm-project中有拦截器。 https://github.com/llvm/llvm-project/blob/1a2eaebc09c6a200f93b8beb37130c8b8aab3934/compiler-rt/lib/interception/interception.h

在文档中他们说我们可以通过定义 INTERCEPTOR(return type, function name, args ...){} 并调用 INTERCEPT_FUNCTION(function name) 来拦截函数。

所以我定义了 INTERCEPTOR(void, free, void* p){ //print message} 并在 compiler-rt 文件中执行了 INTERCEPT_FUNCION(free) 。

但是我遇到了以下错误。

我认为它需要更多信息或实施。

有谁知道如何解决这个错误?

谢谢你。

0 投票
0 回答
7 浏览

sanitizer - 试图弄清楚如何在不丢失我需要的数据的情况下很好地执行 HTML sanitizer

所以我们正在尝试在工作中实现 HTML sanitizer,我正在使用下面的这个 HTML 片段进行测试。在此示例中,它截断并删除了 Jackson 和 94,但保留了其他所有内容。有没有办法清理并有意保留我想在前端显示的内容?

HTML 片段示例