我正在为正在学习内存安全和编写安全 C 代码的学生设计一个家庭作业挑战。作为其中的一部分,我正在寻找一个小型编程任务,其中编写没有缓冲区溢出、数组越界错误和/或其他内存安全错误的 C 代码并非易事。这种任务的一个很好的例子是什么?
换句话说:我指定了所需的功能;他们用C实现它;如果他们在实施时不小心,他们的代码很有可能存在内存安全漏洞。理想情况下,我更喜欢可以简洁地实现的东西(最多几百行代码)以保持任务的可管理大小,如果任务在工业上或实际相关或现实中会特别酷或代表现实世界的编程。
举一个不同领域的例子,在排序列表上实现二进制搜索是一个容易指定的编程任务的经典例子,如果你在实现它时不小心,你很可能会遇到某种逻辑错误(例如,一个错误,一些输入的无限循环,诸如此类)。对于安全性,特别是内存安全漏洞,是否有任何好的相应任务?