症状
根据 MSDN 库中,当您编译 C 或 c + + 源代码使用 Visual C++ 2013 C/c + + 编译器,Visual C++ 2013年应该会检测到某一缓冲区溢出情况下 (当然,只是那些可以在检测到编译时) 和发出警告 C4789。 但是,某些缓冲区溢出不捕获了所有的优化设置 Visual C++ 2013,即使您已经安装了 Visual Studio 2013年更新 5。没有 C4789 发出警告的较早版本的 Visual C++ 2010年已经成功发出警告 C4789。 注意:安装此修复程序后,Visual C++ 2013年可以检测缓冲区溢出,并发出警告 C4789 版本的配置生成 (如果未使用/Od )。
原因
由于 Visual Studio 2013 C/c + + 编译器中存在的问题,会出现此问题。
解决方案
修补程序信息
下列文件已可从 Microsoft 下载中心下载:立即下载此修补程序包。 有关如何下载 Microsoft 支持文件的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
119591如何从联机服务获得 Microsoft 支持文件Microsoft 已对此文件进行病毒扫描。Microsoft 使用自该文件发布日期起可用的最新的病毒检测软件。该文件存储在安全增强型服务器上,帮助防止对文件进行任何未经授权的更改。
系统必备组件
若要应用此修补程序,您必须安装的 Visual Studio 2013年。
注册表信息
若要使用此程序包中的修复程序,您不必对注册表进行任何更改。
重启要求
您不必应用此修复程序后重新启动计算机。
修补程序替换信息
此修补程序不替代以前发布的修补程序。
解决方法
若要变通解决此问题,请使用/Oi编译器开关或代码分析来检测缓冲区溢出在编译时的多个实例。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。