专栏首页独行猫a的沉淀积累总结记一个AddressSanitizer(ASAN)linux下的内存分析神器的问题

记一个AddressSanitizer(ASAN)linux下的内存分析神器的问题

感谢万能的互联网,我向google提出的issue很快就得到了工程师回复,解决了我的问题。

我的问题是这样的:

AddressSanitizer can't detect some global buffer overflow!  #1285

Closed

yangyongzhen opened this issue yesterday · 1 comment

yangyongzhen commented yesterday

what a pity! AddressSanitizer can't detect some global buffer overflow! Even if the mistake or code bugs is so obvious。 for example,this code bellow, guess what you will get, ...... U08 IP[10]; U08 IP1[10]; int main() { memset(IP1,0x3A,10); memcpy(IP,"123456789021111111111",17); IP[15] = 12; printf("IP1[0]:%d\n",IP1[0]); printf("IP1[1]:%d\n",IP1[1]); printf("IP1[2]:%d\n",IP1[2]); printf("IP[10]:%d\n",IP[10]); printf("IP[11]:%d\n",IP[11]); printf("IP[15]:%d\n",IP[15]); printf("IP1[0]:%d\n",IP1[0]); printf("IP1[1]:%d\n",IP1[1]); printf("IP1[2]:%d\n",IP1[2]); } 。。。。。。 use cflags= -std=gnu99 -Wall -fno-stack-protector -fno-omit-frame-pointer -fvar-tracking -g2 -fno-inline -fsanitize=address -fexceptions but AddressSanitizer can't detect this!!! if you add "static" before the global vars,like this: static U08 IP[10]; then AddressSanitizer can detect mistakes,, why?

melver commented 23 hours ago

Add -fno-common for C code. Globals that are placed in the common section (default for C) won't be separated by redzones, and therefore the OOB accesses in your example simply access IP1's memory.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 若一开始代码架构不清晰,就是前人挖坑,后面所有人掉坑里

    原文链接: https://developer.android.google.cn/jetpack/docs/guide

    特立独行的猫a
  • Android 照相机 camera 操作封装

    项目中经常用到Android自带的camera拍照功能。于是做了个封装,CameraUtil.java类。

    特立独行的猫a
  • 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux

    MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)...

    特立独行的猫a
  • Cocos Creator | 飞刀大乱斗开发教程系列(二)!

    ■ 这一期,主要讲解主页中间人物效果的实现。也就是,在下方列表选择不同人物,上方显示不同的人物,播放不同的效果,即下图的效果实现,此部分也是采用预制 Prefa...

    一枚小工
  • python 安装zbar

    py3study
  • ​调用链与日志关联的探索式查询

    摘要:本文将就Observability中的日志聚合、分布式跟踪及具体应用中结合使用进行展开说明。

    宜信技术学院
  • python 办公自动化系列 (1) 从22053条数据中统计断网次数并计算平均断网时间

    需求:找到通网后的第一个日志和断网前的最后一个日志,然后提取 date 列的时间做减法,获得本次断网时间,之后用同样的方法统计每次的断网时间,最后计算总的断网次...

    叶庭云
  • 商城小程序如何吸引消费者?

    小程序火了,如同十年前的淘宝店、三年前的微商城,如果企业没有去做,就很难获得这波新技术红利。但与前两者不同,如果淘宝店和微商城还能依靠大平台付费引流,小程序这种...

    用户1745481
  • 商城小程序如何吸引消费者?

    小程序火了,如同十年前的淘宝店、三年前的微商城,如果企业没有去做,就很难获得这波新技术红利。但与前两者不同,如果淘宝店和微商城还能依靠大平台付费引流,小程序这种...

    用户1745481
  • tkinter: 屏幕居中

    JNingWei

扫码关注云+社区

领取腾讯云代金券