2月4日消息,据国外媒体报道,所有的软件都有漏洞,但这一个漏洞特别奇怪。如果你在几乎任何苹果Mac应用程序中输入“File:/ / /”(不含引号,字母F必须大写,半角符号),都会导致软件崩溃。
Open Radar周四报告了苹果这一bug,引发了黑客新闻网上网友们的热烈讨论。
首先,值得注意的是,这一bug只会出现在OS X Mountain Lion系统,而在Lion或Snow Leopard系统中则没有遇到这个问题。这确实不是个好消息,因为Mountain Lion是苹果操作系统的最新版本,越来越多的Mac用户已经切换到了这一版本。
在黑客新闻网上,一条评论指出,这个bug甚至会使Mac错误报告崩溃。在程序崩溃之前,该用户设法复制了代码。
仔细分析,发现漏洞发生在数据检测器中。数据检测器的主要功能是让应用程序识别日期、地点,以及关联数据,便于在地址簿和日历中保存信息。
一网友对此解释说,看起来似乎任何不区分大小写的file:/ /(+/)都会引发崩溃,但是从复制的代码看, file:/ /(+/)小写字母的字符串并不会导致程序崩溃。
另一名网友补充道,数据检测器将提取以File://a/开头或任何其他完整文件的URL作为一个有效数据的URL,然后将其传递给结果提取URL,由其做进一步的核对检查。
那些以file://开头的URL被认为是有效的,然后其会转换为一个乱码,正是其使得应用程序崩溃。而人们看到的时间差异是因为,内置的拼写检查程序在键入内容后停滞一会才开始检查拼写。
如果你只打开一个文件或应用,数据检测器也会运行。当明确文本控件类型时,就可以禁用自动拼写检查和数据提取了。
最后,也有用户指出,许多应用程序会因为该指令崩溃,但sublimetext却没有出现这种现象。正如评论者指出,这是因为它不使用NSTextFields,从而不使用数据检测器。因此说明,只有使用NSTextFields的程序才会崩溃。
这些BUG已经上报给了苹果公司,可能会尽快修补。尽管这不是一个致命的缺陷,但是也需要一段时间处理。同时,如果你的应用程序总会自动崩溃,那么就要进入系统设置,选择语言及文字,并取消“拼写自动检测”以及“使用符号和文本替换”的选项。