» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[杂谈] 【年度巨献】从外行的视角尝试讲解为什么这回丰田栽了【全文完】【v1.01】

豐田的車navi代碼規範都禁用遞歸
為甚麼直接關係人命的代碼反而敢用

活該


TOP

一下子给丰田解决这么多问题,要奖励台丰田车给Barr。



TOP

堆栈溢出直接写到OS的内存区域这个不可信,一个是进程地址一个是OS地址,直接写是会报错的
拿X86来说,你直接往内存地址0写数据,就会报segmentation fault,因为地址0不属于当前进程的内存范围
要不然随便什么进程都可以往内存随便什么地方写东西,整个系统立马就崩溃了

当然,什么一万一千个全局变量,1300行长的函数这些地没法洗


TOP

posted by wap

v1.01更新……补充了为啥无法获得直接证据的技术原因。
本帖最近评分记录
  • lunar651 激骚 +6 感谢分享 2013-11-6 13:41

TOP

posted by wap, platform: SonyEricsson (Xperia Play)
引用:
原帖由 @Brienza  于 2013-11-6 03:58 发表
堆栈溢出直接写到OS的内存区域这个不可信,一个是进程地址一个是OS地址,直接写是会报错的
拿X86来说,你直接往内存地址0写数据,就会报segmentation fault,因为地址0不属于当前进程的内存范围
要不然随便什么进程都可以往内存随便什么地方写东西,整个系统立马就崩溃了

当然,什么一万一千个全局变量,1300行长的函数这些地没法洗
我搜了一下电装的主芯片,好像多数用的nec的v850,当然后来改用飞思卡尔的powerpc了。05版佳美比较老,估计还是850的芯片,这样的话内部根本没有mmu,所以os和进程本来就是在同一地址空间。

堆栈下面紧跟着就是任务管理区,这个隐患很大。stack爆了os跟着遭殃。

还有种情况也容易想到,指针变量的某个bit变位,导致指针操作写到os变量区…当然这个变位发生的可能性太低

TOP

全都更新完了我才开始看,今天的激骚请收下

TOP

发新话题
     
官方公众号及微博