- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <iostream>
#include <string.h>
using namespace std;
//void test3(char*) __attribute__((no_sanitize_address));
//__attribute__((no_sanitize_address))
void test3(char *p){
delete[] p;
cout << *p << endl;
cout << "test3" << endl;
}
//__attribute__((no_sanitize_address))
void test2(char *ptr, char *p){
if(memcmp(ptr,p,6) == 0){
cout << "Yes" << endl;
}
cout << "test2" << endl;
}
int main(){
char *p = new char[5];
char *ptr = new char[6];
test2(ptr, p);
test3(p);
delete[] ptr;
return 0;
}
编译标志是
-fsanitize=address -fno-omit-frame-pointer -fsanitize-recover=address -g -pipe -rdynamic -Wl,--build-id
.
rpmbuild
构建下面的 rpm 包:
Wrote: /root/rpmbuild/RPMS/x86_64/main_test-1.0.0-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/main_test-debuginfo-1.0.0-1.x86_64.rpm
安装后
main_test
和
main_test-debuginfo
, 我跑
main
.现在的问题是 Asan 不报告任何源文件行。
=================================================================
==39137==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000eff5 at pc 0x7ffff6ecd328 bp 0x7fffffffe350 sp 0x7fffffffdb00
READ of size 6 at 0x60200000eff5 thread T0
#0 0x7ffff6ecd327 (/usr/lib64/libasan.so.3+0x8d327)
#1 0x400ee2 in test2(char*, char*) (/usr/local/bin/main+0x400ee2)
#2 0x400f58 in main (/usr/local/bin/main+0x400f58)
#3 0x7ffff62763d4 in __libc_start_main (/usr/lib64/libc.so.6+0x223d4)
#4 0x400d58 (/usr/local/bin/main+0x400d58)
0x60200000eff5 is located 0 bytes to the right of 5-byte region [0x60200000eff0,0x60200000eff5)
allocated by thread T0 here:
#0 0x7ffff6f02e70 in operator new[](unsigned long) (/usr/lib64/libasan.so.3+0xc2e70)
#1 0x400f33 in main (/usr/local/bin/main+0x400f33)
#2 0x7ffff62763d4 in __libc_start_main (/usr/lib64/libc.so.6+0x223d4)
SUMMARY: AddressSanitizer: heap-buffer-overflow (/usr/lib64/libasan.so.3+0x8d327)
...
然而,期望是:
=================================================================
==36210==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000eff5 at pc 0x7ffff6ecd328 bp 0x7fffffffe370 sp 0x7fffffffdb20
READ of size 6 at 0x60200000eff5 thread T0
#0 0x7ffff6ecd327 (/usr/lib64/libasan.so.3+0x8d327)
#1 0x400ee2 in test2(char*, char*) /home/matt/main_test-1.0.0/main.cpp:17
#2 0x400f58 in main /home/matt/main_test-1.0.0/main.cpp:27
#3 0x7ffff62763d4 in __libc_start_main (/usr/lib64/libc.so.6+0x223d4)
#4 0x400d58 (/home/matt/main_test-1.0.0/main+0x400d58)
0x60200000eff5 is located 0 bytes to the right of 5-byte region [0x60200000eff0,0x60200000eff5)
allocated by thread T0 here:
#0 0x7ffff6f02e70 in operator new[](unsigned long) (/usr/lib64/libasan.so.3+0xc2e70)
#1 0x400f33 in main /home/matt/main_test-1.0.0/main.cpp:24
#2 0x7ffff62763d4 in __libc_start_main (/usr/lib64/libc.so.6+0x223d4)
SUMMARY: AddressSanitizer: heap-buffer-overflow (/usr/lib64/libasan.so.3+0x8d327)
...
似乎Asan无法链接源文件。我对出了什么问题感到困惑。有什么办法可以解决吗?
最佳答案
I'm confused with what went wrong.
Is there any way to solve it?
strip
并在 rpmbuild
中单独生成调试信息. This answer可能有用。 addr2line -fe /path/to/unstripped/binary 0x400ee2 0x400f58 ...
事后恢复源文件/行信息。 关于linux - 地址 sanitizer : No matching source file lines in the report after separating debuginfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69387584/
我目前使用以下代码在存储字符串之前对其进行清理: ERB::Util::h(string) 当字符串已经像这样清理后,我的问题就出现了: string = "Watching baseball `&a
我有几个版本的项目结帐和编译。如果我发现错误,我会比较版本以缩小问题范围。有时我会启用像 AddressSanitizer 这样的 sanitizer 。如果我重新使用一个可执行文件,我不记得它是否是
过去有人担心在某些环境中的生产中使用 ASAN:https://seclists.org/oss-sec/2016/q1/363 .评论来自 2016 年 - 今天的情况如何? 是否推荐使用 sani
过去有人担心在某些环境中的生产中使用 ASAN:https://seclists.org/oss-sec/2016/q1/363 .评论来自 2016 年 - 今天的情况如何? 是否推荐使用 sani
我正在使用 Google Caja HTML Sanitizer ( https://code.google.com/p/google-caja/wiki/JsHtmlSanitizer ),但它正在
我正在使用 goog.dom.safeHtmlToNode 动态更新包含内容的选项卡 由于较新版本的 google 闭包库删除了 dom 片段方法:goog.dom.htmlToDocumentFra
我正在使用 DOMPurify.sanitize()里面 dangerouslySetInnerHTML={{}}显示 innerHtml从数据库返回。对于最初的目的,我使用 getServersid
我不知道我需要做什么才能使这些选项不再被禁用。任何帮助,将不胜感激: 最佳答案 Thread Sanitizer 可用于以下准备条件: 关闭其他选项,例如 'Malloc stack' 需要64位模拟
我想知道是否有人使用过这个类并发现它可靠? http://www.phpclasses.org/package/3746-PHP-Remove-unsafe-tags-and-attributes-f
假设我复制了一些“恶意”输入,例如带有事件处理程序或其他 javascript 的 DOM 节点 如果我将其复制到我的剪贴板并将其粘贴到 contenteditable div 中,事件处理程序将被
这是我的一个表单(PHP+MySQL,textarea被TinyMCE取代)。它记录了带有段落、项目符号、标题和文本对齐方式(右对齐、左对齐、居中对齐和对齐)的描述。 提交后,记录显示为 Introd
我有以下代码片段,我在其中检查 soap 结果并将数据插入我的数据库。 Connection dbconn = null; Statement stmt1 = null; Statem
在以下示例中,我如何删除所有保留 html 内容的未知现有自定义标签: my header my Title my SubTitle 我想回去
我正在 Ubuntu 14.04 上使用带有 Clang 3.7.0 的 Memory Sanitizer。以下代码可以完美运行: #include int main() { double an
有哪些好的 PHP html(输入) sanitizer ? 最好是,如果内置了某些东西 - 我希望我们能做到这一点。 更新: 根据请求,通过评论,输入应该不允许 HTML(并且显然防止 XSS 和
我有以下数组,想知道验证和清理该数组以确保只允许整数的最佳方法是什么? if(is_array($_POST['taxonomy'])) { $term_ids = array_map('es
$sanitize 服务 tells me that All safe tokens (from a whitelist) are then serialized back to properly e
很抱歉,如果这是一个 super 简单的概念,但我发现很难获得正确的心态才能正确使用 clang 提供的 sanitizer 。 float foo(float f) { return (f / 0)
Clang有各种 sanitizer ,可以打开以在运行时发现问题。 但是,有些 sanitizer 我不能一起使用。这是为什么? clang++-3.9 -std=c++1z -g -fsaniti
一直在用fsanitize=address在编译 C 程序时,为了跟踪段错误大约一年了。我时不时地遇到一个奇怪的行为,如果编译没有我的程序会出现段错误 fsanitize=address但是当我用 f
我是一名优秀的程序员,十分优秀!