本篇介绍了以下代码安全问题
1、解引用未初始化的指针
2、除数为零
3、不当的循环终止
4、参数占用空间过大
5、不当的函数类型转换
6、不当的二元运算
7、拒绝服务
8、污点数据作为循环边界
9、操纵设置
10、路径遍历
11、进程控制
1、解引用未初始化的指针
详细信息
局部的、自动变量如果未经过初始化便进行使用,可能会导致意料之外的行为。
例如,如果局部的、自动变量存储在程序栈中,它们默认值为当前存储在栈内存中的值。
另外,一些动态的内存分配方案也不会初始化被分配后的内存空间内容。
方法名 | 初始化 |
---|---|
aligned_alloc() | 不会初始化 |
calloc() | 初始化为0 |
malloc() | 不会初始化 |
realloc() | 从源指针拷贝内容,可能会初始化 |
未初始化的自动变量或动态分配内存都拥有不确定的值,程序在使用这些不确定的值时可能会触发非预期的行为,甚至可能会让程序存在被恶意攻击的严重隐患。
例如:
void f