硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1392|回复: 6
收起左侧

[其它] NASA分享的10条开发安全关键代码注意事项

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2022-7-11 04:27:12 | 显示全部楼层 |阅读模式
P10.pdf (36.42 KB)

翻译的不一定准确,推荐直接看英文版

(1)将所有代码限制为非常简单的控制流结构,不要使用goto语句、setjmp 或 longjmp 构造以及直接或间接的递归调用
(2)所有循环都必须有一个固定的上界。
(3)初始化后不要使用动态内存分配。
(4)任何函数都都不应超过可以打印在单张论文纸上的长度,每条语句一行,每条语句一行声明。通常,这意味着每个函数不超过 60 行代码。
(5)每个函数的断言,至少要有两个。
(6)数据对象必须在尽可能小的范围内声明
(7)函数的返回值和函数的形参有效性必须做检测。
(8)预定义宏限用于包含的头文件和简单的宏定义。
(9)指针的使用应该受到限制。具体来说,不超过一级指针。指针解引用操作不能隐藏在宏中定义或在 typedef 声明中。不允许使用函数指针(使用函数指针后,分析功能可能无法检测是否有递归问题)。
(10)从编写代码的第1天开始,编译器的所有编译警告设置要全开,所有的代码编译后必须零警告,并且使用静态分析工具分析后,也必须保证零警告。

024313yg7dga6ady2g2a0d.png
回复

使用道具 举报

5

主题

184

回帖

199

积分

高级会员

积分
199
发表于 2022-7-11 08:19:24 | 显示全部楼层
太严苛了,仅供参考
回复

使用道具 举报

214

主题

1087

回帖

1739

积分

至尊会员

More we do, more we can do.

积分
1739
发表于 2022-7-11 09:01:29 | 显示全部楼层
毕竟是NASA,求稳为主,效率次之
回复

使用道具 举报

21

主题

287

回帖

350

积分

高级会员

积分
350
发表于 2022-7-11 09:52:30 | 显示全部楼层
其实国军标航天系的也差不多,上学时候是航天专业的,选修过飞行器软件测试的课程
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
 楼主| 发表于 2022-7-11 11:24:13 | 显示全部楼层
到这种级别,确实是逻辑越简单越好,越稳定越好。
回复

使用道具 举报

23

主题

1432

回帖

1501

积分

至尊会员

积分
1501
发表于 2022-7-12 10:10:38 | 显示全部楼层
看来我曾经做的跑马灯是最安全的
代码不规范,亲人两行泪!
回复

使用道具 举报

4

主题

15

回帖

27

积分

新手上路

积分
27
发表于 2022-7-13 14:12:57 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:41 , Processed in 0.261649 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表