C语言的溢出错误分析与防范

作者:苻玲美
来源:电脑编程技巧与维护, 2019, (09): 42-46.
DOI:10.16184/j.cnki.comprg.2019.09.014

摘要

溢出是C语言所固有的缺陷,它既不检查数组边界,也不检查数据类型的可靠性。最常见的溢出有数组溢出、数溢出、指针溢出、栈溢出、堆溢出等缓冲区溢出。导致各种溢出的主要原因是程序中没有仔细检查用户输入,由于缓冲区溢出而使得相邻有用的存储单元被改写,往往会引发不可预料的后果。其一程序崩溃,导致拒绝服务;其二跳转并且执行攻击者事先准备的一段恶意代码,使程序转而执行其他指令,以达到攻击的目的。因此要在编程中加以防范,避免漏洞。