其他分享
首页 > 其他分享> > 来告诉大家 AddressSanitizer: stack-buffer-overflow on address 一般都是代码哪里出现了问题

来告诉大家 AddressSanitizer: stack-buffer-overflow on address 一般都是代码哪里出现了问题

作者:互联网

通常C /C++ 编译器 是对内存访问是不添加边界检查的。有时候优于代码错误,就有读或者写 操作了缓冲区外面的内存地址。这种错误一般都很难察觉。所以一旦编译出现AddressSanitizer: stack-buffer-overflow on address 错误,首先就检查自己代码的边界条件是否没有控制住。

什么是stack-buffer-overflow ? 

举例来说: 

int a[10];

a[11] = 10; // stack-buffer-overflow

a[-1] = 10;//stack-buffer-underflow

 

什么是head-buffer-overflow ? 

举例来说:

int* x = malloc(10);
int n=x[11]; //heap-buffer-overflow

int n=x[-1] //heap-buffer-underflow


 

标签:10,AddressSanitizer,buffer,underflow,int,address,overflow,stack
来源: https://blog.csdn.net/youngyangyang04/article/details/104874156