首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GCC中使用容器溢出漏洞检测?

如何在GCC中使用容器溢出漏洞检测?
EN

Stack Overflow用户
提问于 2016-07-18 03:55:00
回答 1查看 146关注 0票数 1

EuroLLVM 2014 Kostya Serebryany presented上提供了一种检测向量溢出的方法。在幻灯片12上,他提供了一个指向GCC revision 207517的链接,用户可以在该链接中看到branches/google/gcc-4_8/libstdc++-v3/

我想知道在哪个版本的GCC上可以使用容器溢出Bugs检测?如果它只在主干中,它是在Clang 3.9版本中可用,还是在主干中也可用?

EN

回答 1

Stack Overflow用户

发布于 2016-07-20 02:44:33

杀菌器矢量注释在原始的gcc中不可用,这些更改只是谷歌的gcc分支的一部分(发布在gcc.gnu.org上)。分支描述:https://www.gnu.org/software/gcc/svn.html

google/main此分支包含暂存到主干的Google本地补丁。其中一些补丁正在审查过程中,或者还没有被提出。此分支的目的是充当一个临时平台,以允许与外部开发人员进行协作。此分支中的补丁程序仅应保留在此处,直到它们在主干中被审查和接受。该分支由Diego Novillo维护

将AddressSanitizer注释添加到向量的提交:

https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=207517“对于Google b/8513090,将AddressSanitizer注释添加到std::vector":

https://gcc.gnu.org/viewcvs/gcc/branches/google/gcc-4_8/libstdc%2B%2B-v3/include/bits/vector.tcc?r1=207517&r2=207516&pathrev=207517

我们可以从提交中获得注解的名称:

代码语言:javascript
复制
 // When sanitizer annotataions are off, avoid bazillion of no-op
 // functions that blow up debug binary size.
 #define __sanitizer_vector_annotate_new()
 #define __sanitizer_vector_annotate_delete()
 #define __sanitizer_vector_annotate_increase(a)
 #define __sanitizer_vector_annotate_shrink(a)

现在在GNU的主干版本的vector.tcc或stl_vector.h中没有杀菌器注释(搜索" sanitizer "):

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/vector.tcc https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h

邮件列表中的线程gcc-patches:https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02180.html“检测std::vector中的容器溢出错误”,来自: Konstantin Serebryany,2014年5月26日。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38425369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档