谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

新闻 前端
由于ChromeOS是开源的,一位Reddit网友仔细系统更新的代码,发现其中的低级错误令人哭笑不得。

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

代码只是少了一个字符,后果竟如此可怕。

上周,一些使用Chrome OS笔记本的用户发现,一旦重启笔记本,就将陷入了无法登录的死循环。

[[413188]]

明明输入的开机密码是对的,但就是一直提示“无法验证您的密码”,进不了系统。更严重的情况是笔记本将反复重启。

一台好好的笔记本怎么突然就“变砖”了呢?

原来都是Chrome OS一次悄悄自动更新惹的祸。

由于ChromeOS是开源的,一位Reddit网友仔细系统更新的代码,发现其中的低级错误令人哭笑不得。

谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

少一个“&”惹的祸

这位网友仔细对比两份代码后发现,这个“惊天大bug”背后竟然只是谷歌程序员少输了一个字符“&”。

原本正确的代码应该是:

  1. if (keydata.hasvalue() && !key_data->label().empty()) 

而这位程序员却这句if语句写成了。

  1. if (keydata.hasvalue() & !key_data->label().empty()) 

“&&”和“&”两个运算符虽然看起来只差一点点,但二者作用真是天壤之别。

前者是对两个变量求“与”(AND),而后者是对这两个值按位求与

这样就导致了条件语句两边变量每一位都会被求与,即使has_value()为真,返回结果也不一定就是真。

而这串代码是Chrome OS中保存用户加密密钥的部分,由于这个错误,系统无法验证将存储的密钥与输入密码进行比较,就出现了尴尬的一幕。

接到用户的反馈后,谷歌迅速发布了91.0.4472.167更新来解决该问题。

如果你的Chrome笔记本只是无法进入当前账户,那么可以先尝试安装最新更新,而不会丢失文件。

如果你的笔记本无线重启,就只能回复出厂设置然后再接收更新了,数据也会全部丢失。

没测试就发布,着实离谱

堂堂互联网大厂竟犯如此低级错误,这令不少Chromebook用户感到愤怒:

谷歌的测试团队这两个月是休假了吗?

谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

谷歌没有代码测试的吗?为什么会在没有测试的情况下把代码发布到生产环境。

谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

Chrome OS过去一直“小错不断”,所以有些用户已经学得精明了:

我已经学会了等更新发布一段时间后再升级。

谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

真是没想到,代码少一个字符竟有这么大的破坏力。好在Chrome OS系统更新是分批进行,波及面也不算太广。

看到这个谷歌程序员的bug,你有没有想起自己犯过哪些低级错误呢?(比如把等于号“==”写成了赋值号“=”)

 

责任编辑:张燕妮 来源: 量子位
相关推荐

2021-10-29 13:53:13

谷歌Chrome OS笔记本

2011-09-06 09:02:06

程序员

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2020-10-05 21:13:37

程序员技能开发者

2020-09-01 14:09:39

笔记本SSD存储

2011-05-16 14:18:54

Chrome笔记本

2014-01-06 09:33:32

程序员管理

2015-04-28 10:13:36

Jenkins蒲公英

2021-07-01 07:43:41

项目程序员代码

2011-05-13 14:41:28

2015-06-16 10:31:36

程序员

2012-11-28 13:25:27

程序员

2020-07-10 09:55:15

程序员技能开发者

2023-12-26 18:47:32

2011-02-14 13:05:17

PythonWeb

2015-06-08 10:48:39

程序员程序员自白

2014-04-16 11:39:52

2012-08-24 10:30:53

Chrome OS浏览器

2019-11-07 15:30:00

EmacsIDE

2009-02-12 15:07:57

程序员创业经验
点赞
收藏

51CTO技术栈公众号