Warum das Wort "Taiwan" iOS-Geräte crashte
Dass kleine Code-Modifikationen oft große Auswirkungen an überraschenden Stellen mitbringen, zeigt einmal mehr der aktuelle Fall eines iOS-Crashs. Die Eingabe des Wortes "Taiwan" konnte nämlich dazu führen, dass iPhone und iPad abstürzten. Dabei machte es keinen Unterschied, ob Apples eigene Tastatur oder die eines Drittanbieters verwendet wurde. Sobald der Nutzer das "n" aus "Taiwan" getippt hatte, folgte direkt ein Absturz. Interessant sind dabei die
Hintergründe – und auch, warum nicht alle Nutzer gleichermaßen betroffen waren.
Normalerweise bietet die Apple-Tastatur direkt eine Flagge an, sobald der Name eines Landes eingetragen ist. Wer hierzulande "Taiwan" eintippt, sieht daher auch die Landesfarben des Inselstaats. Während sich Taiwan allerdings souveränen Staat betrachtet, hält China die Insel für einen festen Bestandteil des eigenen Territoriums. Anderslautende Ansichten rufen sofort Behörden auf den Plan: Die Internetkontrolle Chinas filtert beispielsweise aus Taiwan stammende Seiten, sobald in irgendeiner Form "Separatismus" festgestellt werden kann. Dies betrifft auch Nachrichten sowie die Verwendung von Hoheitszeichen. Dies zieht automatisch strikte Vorgaben für Anbieter nach sich, die in China über Taiwan sprechen oder den Begriff verwenden.
Genau vor diesem Problem stand auch Apple. Man traf daher die Entscheidung, besagte Taiwan-Flagge eben nicht automatisch einzublenden, sobald sich der Nutzer in China befand. Dies funktionierte zunächst tadellos, denn innerhalb Chinas tauchte keine Flagge auf, in anderen Ländern jedoch schon. Die removeEmoji-Instruktion griff immer dann, wenn die Region als China erkannt wurde – genau hier begannen aber die Probleme. Sobald keine eindeutige Region feststand, ging die Abfrage ins Leere und ein Absturz war die Folge. Diese "Null pointer dereference" führte zum Verdacht mancher Nutzer, ihr iPhone sei eventuell von China gehackt worden. Wie sich nun zeigte, war dies aber nicht die korrekte Schlussfolgerung – seit iOS 11.4.1 tritt der Fehler (von Apple unter der Nummer "CVE-2018-4290" geführt) auch nicht mehr auf.