Warum stürzen einige Unicode-Textnachrichten das iPhone-Betriebssystem ab?

31

In den letzten Wochen ist eine neue Panne über das Internet aufgetaucht, wenn ein iPhone-Benutzer gesendet wird:

  effective. 
      Power
           لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ
 冗

Über iMessage stürzt das Betriebssystem des Telefons vorübergehend ab und das empfangende Telefon wird neu gestartet.

Warum funktioniert das?

Shaun Loftin
quelle
3
Eigentlich glaube ich, dass nur die arabischen Zeichen (und möglicherweise die nach ihnen) erforderlich sind. Der Text "Wirkleistung" ist nur eine Füllung und kann beliebig lang sein, sollte jedoch so lang sein, dass die Benachrichtigung bei den fremden Zeichen abgeschnitten wird (oder zumindest versucht, dies zu tun, da dies den Absturz verursacht).

Antworten:

36

Wenn Sie dies beheben möchten, verwenden Sie Siri oder einen Mac, der iMessage verwendet, um sich selbst eine neue Nachricht zu senden. Siehe https://support.apple.com/de-de/HT204897

Die Wiederherstellung ist in drei Schritten erledigt, und ein zukünftiges Software-Update behebt diesen Fehler.

  1. Bitten Sie Siri, "ungelesene Nachrichten zu lesen".
  2. Verwenden Sie Siri, um auf die schädliche Nachricht zu antworten. Nachdem Sie geantwortet haben, können Sie Nachrichten erneut öffnen.
  3. Wenn das Problem weiterhin besteht, tippen Sie etwas länger auf die schädliche Nachricht, tippen Sie auf Mehr und löschen Sie die Nachricht aus dem Thread.

Es handelt sich um einen bestimmten Fehler in der Art und Weise, wie Notification Center den Unicode-Inhalt dieser Nachricht darstellt. Der Code führt eine "unsichere" Operation aus (etwas wie 5 geteilt durch 0 und prüft dann nicht auf unerwartete Ergebnisse), die einen unbehandelten Fehler verursacht.

Dann, da Notification Center den Textblock nicht rendern kann und letztendlich das Springboard abstürzt, das keinen Code hatte, um diesen Fehler ordnungsgemäß zu behandeln. Wenn kein spezifischer Fehlerbehandler vorhanden ist, wird bei den meisten Vorgängen ein fehlersicherer Neustart durchgeführt, um den Fehler zu beheben.

Mit Unicode können Zeichen codiert werden, die für Sprachen verwendet werden, deren Zeichenanzahl höher ist als die von Englisch. Programmierer können Probleme damit haben, weil sie gelernt haben, mit ASCII-Text zu programmieren, und weil sie es versäumen, ihre Software mit vollständiger Unicode-Unterstützung zu schreiben.

Ein guter Artikel dazu erklärt: "Wenn Sie immer noch so programmieren, sind Sie nicht viel besser als ein Arzt, der nicht an Keime glaubt."

Dieser andere Artikel erklärt diese spezifische Situation gut.

Apple könnte entweder strengere Codeüberprüfungen durchführen, bestimmte Komponententests durchführen oder Endbenutzer ihren Code wie in diesem und ähnlichen Fällen unübersichtlich testen lassen .

tron_jones
quelle
6

Es ist etwas, das Apple reparieren muss.

Das Problem scheint darauf zurückzuführen zu sein, dass das Telefon versucht, die Nachricht in Benachrichtigungen anzuzeigen. Die Zeichen bewirken, dass das System zusammenbricht, sodass es kurz versucht, es anzuzeigen, bevor es abstürzt, und dann das Telefon neu einstellt, um es zu reparieren.

Hier sind einige kurzfristige Korrekturen, die Sie vornehmen können, bis Apple das Problem behoben hat.

  • Lassen Sie die Person, die Ihnen die böswillige Nachricht gesendet hat, eine weitere Nachricht senden, um den Anfangsstrang effektiv zu löschen

  • Senden Sie sich eine Nachricht über Siri, das Share Sheet oder von Ihrem Mac aus.

  • Ein anderer Leser merkt an, dass „das Senden eines Fotos an den Kontakt über die Foto-App es ihm ermöglichen kann, auf den Nachrichtenverlauf zuzugreifen und die Konversation zu löschen“.

Quelle: http://www.redmondpie.com/how-to-fix-ios-text-messages-crash-bug/

Ruskes
quelle