别名漏洞是否适用于签名字符?

Does the aliasing loophole apply to signed characters?

本文关键字:字符 适用于 漏洞 是否 别名      更新时间:2023-10-16

在C++中,有一个混叠漏洞,它允许通过一些字符类型的指针读取或写入任何对象的对象表示。

这仅适用于charunsigned char还是也适用于signed char

不,该规定不适用于signed char

[基本.lval]

8 如果程序试图访问对象的存储值 通过以下类型之一以外的 GL值 行为未定义:

  • [...]
  • charunsigned charstd​::​byte类型。

上面的引文包含与字符类型别名相关的最后一个项目符号。signed char被排除在外。

尽管如此,这也是CWG第350期处理的主题的一部分,因此可能会发生变化。鉴于问题的发展方向,其意图是(最终,希望如此?(明确定义。