当Rust进入Linux内核:一门语言的十七年逆袭

2006年的一天,Graydon Hoare回到公寓,发现电梯又坏了。他住在21楼。 爬楼梯的时候,这位Mozilla的程序员越想越气。“我们这些搞计算机的,连个电梯软件都写不好?“他后来回忆道,“这太荒谬了。” ...

13 min · 6263 words

正则表达式的阴暗面:为什么一行代码能让服务器瘫痪二十七分钟

2019年7月2日,保护着全球约20%互联网流量的Cloudflare遭遇了一次持续27分钟的全球性宕机。原因令人意外:一个正则表达式。 更准确地说,是这个正则表达式: ...

12 min · 5756 words

别被编译器骗了:为什么你的安全检查代码可能正在被悄悄删除

Google Native Client团队曾遭遇过一次令人后背发凉的漏洞:沙箱逃逸保护机制被编译器悄无声息地删除了。问题出在一行看似无害的代码重构:将 aligned_tramp_ret = tramp_ret & ~(nap->align_boundary - 1) 改成了 return addr & ~(uintptr_t)((1 << nap->align_boundary) - 1)。 ...

8 min · 3607 words