缓冲区溢出的缓冲区的好名字是什么?

What is a good name for a buffer for buffer overflow?

我不确定在这里问这个问题是否合适,所以请将此 post 迁移到更合适的正确位置。

我真的很想知道这个的正确名称是什么。

char buf[SIZE + XX]

buf 将包含最多 SIZE 的有意义的数据,但一些例程会覆盖 SIZE 所以我应该提供一个 缓冲区 XX 溢出。

你觉得 XX 的名字好听吗?

这叫做填充。


举个例子

struct Struct {
   int i;
   char ch;
}

在具有 sizeof( int )4 的特定系统上,sizeof( struct Struct ) 可能是 8。这是因为在末尾添加了 3 个字节的填充(在该系统上)以确保此结构的数组的每个元素都正确对齐。


以加密协议为例。他们通常使用 fixed-size 块。对称加密的现代标准就是这样一种协议。 AES 只能编码和解码 128 位块。那么,如果您要发送的数据不是 128 位的倍数怎么办?必须使用填充。


在第一个示例中,填充是指满足 meta/sizing 约束而不是存储数据所需的额外 space。

在第二个例子中,填充是指满足meta/sizing约束而不是携带信息所需的额外数据。

在这两个示例中,填充都是指为满足 meta/sizing 约束而额外添加的内容。这就是您要添加的内容。


最后,事情不是这样。 “溢出”是指不足space。 “安全”意味着猜测或不确定性。这两个词在这里都不合适。