MrV*_*dez 16 c c++ buffer-overflow buffer-overrun
我被要求维护一个充满内存泄漏的大型C++代码库.在探索时,我发现我们有很多缓冲区溢出导致泄漏(它如何变坏,我不想知道).
我决定先从危险函数开始删除缓冲区溢出.哪些C/C++函数最常使用不正确并可能导致缓冲区溢出?
对于用于帮助查找缓冲区溢出的编译器和/或工具,我创建了另一个处理此问题的问题
hay*_*lci 11
通常,任何不检查参数中的边界的函数.列表将是
您应该使用大小限制版本,如stncpy,strncat,fgets等.然后在给出大小限制时要小心; 考虑'\ 0'终止字符串.
此外,数组不受C或C++的约束.以下示例将导致错误.看到一个错误
int foo[3];
foo[3] = WALKED_OFF_END_OF_ARRAY;
Run Code Online (Sandbox Code Playgroud)
编辑:@MrValdez,@ Denton Gentry的复制答案
以下是我发现的一些危险函数:
| 归档时间: |
|
| 查看次数: |
6208 次 |
| 最近记录: |