`
wangshaofei
  • 浏览: 279573 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一个空格引发的惨剧

阅读更多

        你是否相信如果你的程序里没有检查一个变量会导致怎么系统瘫痪?无论你相不相信,这是我一个亲身经历过的案例,你可以在本站的程序员那些悲催的事儿中找到很多这样的事。这样的事昨天在发生,今天同样在发生。Unix40多年了,在这40年里,程序员发生过各种各样的的惨剧,但是大多数的事情一而再再而三的重演。

 

        今天的你,可能在开发者各种各样NB的系统,你会相信你的一个空格也能导致系统瘫痪吗?也许你可能很难相信这个事。不过,再下面这个事将告诉你这个血淋淋的事实 —— 一个空格产生的bug可以让你的系统瘫痪。

 

        bumblebee是一个开源项目,这个名字也就是变形金刚里的大黄蜂,这个项目是这样介绍自己的——

 

bumblebee is Optimus support for Linux, with real offloading, and not switchable graphics.. More important.. it works on Optimus Laptops without a graphical multiplexer..

        Optimus 是NVIDIA的“优驰”技术,其可以将您的笔记本电脑PC提升到绝佳状态,提供出色的图形性能,并在需要时延长电池续航时间。这个项目是把这个技术移到Linux上来。

        这个项目本来不出名,不过,程序在其安装脚本install.sh里的一个bug让这个项目一下子成了全世界最瞩目的项目,这个bug的fix如下:

1
2
3
@@ -348,7 +348,7 @@ case "$DISTRO" in
-  rm -rf /usr /lib/nvidia-current/xorg/xorg
+  rm -rf /usr/lib/nvidia-current/xorg/xorg

        看明白了吗?空格。这个空格会导致什么样的问题呢?呵呵。你有没有感到菊花一紧?这个bug绝对的霸气外露!真是验证了“如何写出无法维护代码”的那句话——“测试你的程序是一种懦夫的行为”。

        不过,最精彩还不是这个bug,而是全世界程序员的对这个bug 的 code review comments,真的相当的欢乐。请强势围望!


https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1

重点是其中的很多图片——下面的图片众多。


derp

MEME


meme


Bear G


meme


1

2

3


never take our /usr



LOL




para


Failtrain


kicked in nuts


转自:http://coolshell.cn/articles/4875.html#more-4875


分享到:
评论

相关推荐

    给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格

    给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello” 输入描述: 输入数据有多组,每组占一行...

    javascript将字符串中的多个空格替换为一个空格的正则实例.docx

    ### JavaScript将字符串中的多个空格替换为一个空格的正则实例 在Web开发与日常编程中,我们经常需要处理字符串。特别是在用户输入或者文本处理过程中,常常会遇到需要清理字符串中的多余空格的情况。例如,当从...

    将字符串中的多个空格,缩减为一个空格(C语言实现)

    将字符串中的多个空格,缩减为一个空格(C语言实现)

    2047:例5.16过滤空格+简便.cpp

    一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。 【输入】 一行,一个字符串(长度不超过200 ),句子的头和尾都没有空格。 【输出】 过滤之后的句子。 【输入样例】 Hello world.This is c ...

    2047:例5.16过滤空格.cpp

    一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。 【输入】 一行,一个字符串(长度不超过200 ),句子的头和尾都没有空格。 【输出】 过滤之后的句子。 【输入样例】 Hello world.This is c ...

    过滤连续空格

    输入一句话,里面含有多个空格,一次遍历将多个连续空格变成一个空格。

    防不胜防:一个空格在数据库里可能引发的N重血案.pdf

    本文主要探讨了在Oracle数据库中,一个看似微不足道的空格如何可能导致一系列问题,特别是当它出现在SQL语句的注释中时。这个问题在11.2.0.3版本的sqlplus客户端中尤为突出。 首先,让我们理解这个问题的根源。在...

    删除字符串中的空格或将字符串的多个空格换位单个空格

    假设我们有一个字符串`str = "这是 一个 有 空格 的 字符串"`,我们希望将其处理为`"这是 一个 有 空格 的 字符串"`。 ```java public class StringUtil { public static String removeSpaces(String str) { ...

    2047:【例5.16】过滤空格 (信息学奥赛一本通)

    一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。 【输入】 一行,一个字符串(长度不超过200),句子的头和尾都没有空格。 【输出】 过滤之后的句子。 【输入样例】 Hello world.This is c ...

    使用matlab批量删除txt文件中的连续的空格,只保留其中一个

    使用matlab批量删除txt文件中连续的空格,只保留其中一个。如有两个连续的空格,删掉一个,留下一个。

    批量去除空格(arcgis批量去除多个字段数据库中空格).zip

    针对这种情况,"批量去除空格(arcgis批量去除多个字段数据库中空格).zip" 提供了一个解决方案。 该压缩包内的"批量去除空格.tbx"是一个ArcGIS工具箱,由Python脚本编写,用于自动化处理数据库中的空格问题。...

    android 银行卡每隔4为一个空格demo

    这个"android 银行卡每隔4为一个空格demo"就是一个实现这一功能的示例项目。 首先,我们要了解`EditText`是Android中的一个视图组件,用于接收用户的文本输入。在这个场景下,`EditText`将作为用户输入银行卡号的...

    调整word空格间隔大小及每个空格所占的字符数.docx

    这意味着,在英文文本中,一个空格占据半个字节的距离,而在中文文本中,一个空格占据一个字节的距离。 如何调整空格间隔大小? ------------------- 调整空格间隔大小可以通过在 Word 中进行设置。方法如下: 1....

    ios-UITextField自动每四格添加一个空格,支持回删.zip

    在某些特定场景下,比如输入银行卡号、电话号码等,我们可能希望在用户输入时每达到一定字符数(如四格)就自动添加一个空格,以提高可读性。这个“ios-UITextField自动每四格添加一个空格,支持回删”的示例代码...

    新浪面试题——删除多个连续的空格代码

    给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。 //比如 “ I like http://hi.baidu.com/mianshiti ” 会变成 "I like http://hi.baidu.com/mianshiti"。

    java正则表达式匹配全角空格

    - `\\s+`:表示匹配一个或多个空白字符,包括空格、制表符、换页符等,这样可以同时处理全角空格和半角空格。 3. **检查并输出非空格字符**: - `if (i != null && !"".equals(i) && !i.matches("\\s+"))`:这里...

    易语言去除文本文件中间的空格

    接着,使用`读取文件`命令获取文件内容,读取的结果通常是一个字符串。 2. **处理字符串中的空格**: - `字符串替换`命令是易语言中用于替换字符串中特定字符或子串的命令,这里我们可以用它来去除空格。设定源...

    西门子SCL删除空格.rar

    若要仅删除前导空格,我们可以先找到第一个非空格字符的位置,然后用“LEFT”函数截取字符串的这一部分。以下是一个更具体的示例: ```scl PROGRAM Main VAR inputString : STRING := " Hello, World!"; // 带前导...

    JS去掉字符串空格

    在JavaScript(简称JS)开发中,对字符串进行操作是一项常见且重要的任务,其中去除字符串中的空格是一个典型的处理需求。本文将深入探讨如何利用JS来有效地去除字符串中的空格,包括单个空格、多个连续空格以及字符...

    FastReport空格自动换行修复

    在某些情况下,用户可能会遇到FastReport的一个特定问题:当设置文本自动换行时,如果输入的是空格,报告会错误地进行换行,这显然不是我们期望的行为。这个问题主要出现在FastReport的源码处理文本换行的逻辑上。 ...

Global site tag (gtag.js) - Google Analytics