Hasty Briefsbeta

双语

Memory Safety’s Hardest Problem

14 hours ago
  • 最困难的内存安全性问题涉及带标签的联合体,其中指向一个变体内部数据的指针在联合体被覆盖为不同变体后被使用,导致类型混淆。
  • 这种类型混淆问题也影响Ada语言,如示例链接所示。
  • 在实践中,最容易被利用的内存错误是缓冲区溢出,通过编译器插入的边界检查可以轻易修复。
  • 行业的一个重大错失是没有更早地采用Walter Bright提出的数组语法(例如 char a[..]),这本来可以避免许多问题。