当前位置: 首页 > C, C/C++ > 正文

C/C++ 代码安全(一)

规则1:

不通过链接创建通用字符串。

C11标准:如果匹配通用字符名称的字符序列由符号链接生成,将产生未定义行为。

此结果是未定义的,不要使用链接诶字符串来赋值。

规则2:

避免使用不安全的宏参数

注意n的加减。

解决方案一:

我们可以写一个内联函数或者写一个静态函数来代替此宏。

解决方案二:

使用范型编程_Generic 参数,范型选择不求值,所以我们的值只会求一次。

解决方案三:

使用GCC 扩展,但是会带来平台问题。

规则:

不要在类函数的宏调用中使用预处理器指令

其实能写出这种代码的人脑洞也是大的没谁了,我感觉这都不关乎安全问题了。

解决方法很简单,写完整就好了。

本文固定链接: http://zmrlinux.com/2016/08/27/cc-%e4%bb%a3%e7%a0%81%e5%ae%89%e5%85%a8%ef%bc%88%e4%b8%80%ef%bc%89/ | Kernel & Me

该日志由 root 于2016年08月27日发表在 C, C/C++ 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: C/C++ 代码安全(一) | Kernel & Me