coredump-x: 整数溢出,潜意识要转变的一个例子

最近遇到一个stack被写坏的情况。栈数据被写坏之后,整个栈里的数据使用gdb就解不出来,导致分析困难。这种情况就需要使用栈里的原始数据手动分析,很麻烦。

最后发现原因是变量之间的加减法,没有考虑溢出的情况。
导致访问数组越界。
所以整数之间的加减法一定要在潜意识里考虑溢出的可能。除非可以非常确定不会发生这种情况。

比如:
a[index-1]=0;
这里期望/假设index是大于等于1。这个期望和假设有时候是不对的。
但是要看代码逻辑一定是大于等于1,如果不能确定就要加校验。

猜你喜欢

转载自blog.csdn.net/qq_36428903/article/details/129813788
今日推荐