Menü
Update
Mac & i

Acht Zeichen killen Mac-Programme

Von
vorlesen Drucken Kommentare lesen 618 Beiträge

File:/// – mehr als diese acht Zeichen braucht es nicht, um fast jede Anwendung unter dem aktuellen Apple-Betriebssystem "Mountain Lion" (OS X 10.8) abstürzen zu lassen. Das geht aus einem Bug-Report bei Open Radar hervor. Dabei spielt die Schreibweise nur eine geringe Rolle: Auch filE:/// und FiLe:/// lösen den Crash aus, nicht jedoch file:///.

Der Crash-Report lässt sich zwar im Terminal betrachten, nicht jedoch im dafür gedachten Programm Konsole: Auch das reagiert auf File:/// allergisch und stürzt ab.

Der Fehler steckt offenbar in der zentralen Rechtschreibkorrektur. Programme, die sie nutzen, stürzen zuverlässig nach Eingabe der Zeichenkette ab. Dazu gehören etwa TextEdit, Kalender, Adressbuch und Spotlight, nicht aber das Mail-Programm Postbox oder das Tool Alfred. Apples eigener Browser Safari lässt sich durch Eingabe von File:/// in ein Textfeld blockieren, nicht jedoch Firefox oder Chrome.

Beim Anzeigen von Crash-Informationen stürzen auch die dafür gedachten Programme "Console" und "Problem Reporter" ab, wenn die Daten den Text "File:///" enthalten.

Zwar erzeugen die Programme beim Absturz Traceback-Dateien im Verzeichnis ~/Library/Logs/Diagnostic Reports. Lässt man sie sich jedoch im dafür gedachten Tool Konsole anzeigen, stürzt auch dieses ab. Immerhin verzichtet das Terminal auf die Rechtschreibprüfung, sodass sich die Tracebacks darin betrachten lassen.

Ursache für den Absturz scheint die Klasse NSDataDetector zu sein, die Apple mit dem Vorgänger des jetzigen Betriebssystems einführte. Sie erlaubt es, etwa Termine, Adressen, Telefonnummern und URIs zu erkennen. Berichten zufolge ist der Bug jedoch nur in Mountain Lion vorhanden, nicht in Mac OS X 10.7. Auch in der letzten Beta des nächsten Updates für Mountain Lion soll der Fehler noch stecken.

Ein Kommentar zum Bug-Report schlägt vor, in den Systemeinstellungen unter "Sprache & Text" die automatische Rechtschreibkorrektur sowie die Textersetzung abzuschalten. Das verhinderte jedoch die Abstürze in Konsole und TextEdit nicht, wohl aber im Adressbuch und Kalender.

Update 3.2. 14:00: Der Fehler ist nicht an die Zeichenkette File:/// gebunden. Er lässt sich ebenfalls durch File://a/ und File://abc auslösen. Nik Cubrilovic erläutert die Hintergründe genauer: Die Methode checkDataDetectors extrahiere den Text, weil sie ihn für einen Datei-URI halte. Anschließend übergebe sie den gefundenen Text an DDResultCopyExtractURL, die ihn auf Übereinstimmung mit dem korrekten Protokoll file:// überprüfe. Da diese Prüfung scheitert, erzeugt sie eine NSInternalConsistencyException, die die darüber liegenden Schichten nicht abfangen. Das Phänomen sei an Objekte der Klasse NSTextField gebunden, schreibt Cubrilovic weiter. Inzwischen scheint der Fehler auch in der Open-Source-Version des Browsers Chrome aufgetaucht zu sein, wie ein Eintrag in dessen Bug-Tracker nahelegt. (ck)