夸人类史上最强程序员之一,但几万行代码丢到他面前,几秒钟内他是绝对看不明白的。
不过没关系,最强BUG系统瞬间就把问题定位到了。所以他看到的直接就是出错的代码。
还帮他把机器码逆成了C。
//用来接受扩展缓冲区的内存
unsigned char *ext_buf = NULL;
//判断受到的通知是否有扩展属性
if(notify-〉type | NT_TYPE_EXT)
{
//如果有,复制扩展缓冲区
memcpy(ext_buf,
notify-〉ext_buf,
notify-〉ext_buf_len);
}
这是一个超级明显的bug。
因为ext_buf的内存根本没分配,所以如果收到类型里带有扩展标记的扩展型通知,就会往空指针里复制数据,必崩溃无疑。
但为什么船长说他开船以来还从来没有坏过呢?
看起来原因很简单,因为这条船从来就没有收到过这种扩展类型的通知。
只要收到的通知里类型都不带NT_TYPE_EXT标记就永远不会崩溃。
但现在这四台主控电脑都启动不了了。其实它们并非是真的起不来。
而是它们只要一启动,就会
095 不断崩溃的主控电脑(4/6)