Perché alcuni messaggi di testo Unicode bloccano il sistema operativo dell'iPhone?

29

Recentemente un nuovo "problema tecnico" è emerso su Internet nelle ultime settimane dove viene inviato un utente iPhone:

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

via iMessage interrompe temporaneamente il sistema operativo del telefono e forza il riavvio del telefono ricevente.

Perché funziona?

    
posta Shaun Loftin 27.05.2015 - 23:54
fonte

2 risposte

35

Se hai bisogno di una correzione per questo, usa Siri o un Mac usando iMessage per mandarti un nuovo messaggio. Vedi link

È una procedura in tre fasi per il recupero e un futuro aggiornamento del software correggerà questo errore.

  1. Chiedi a Siri di "leggere i messaggi non letti".
  2. Usa Siri per rispondere al messaggio dannoso. Dopo aver risposto, potrai nuovamente aprire Messaggi.
  3. Se il problema persiste, tocca e tieni premuto il messaggio dannoso, tocca Altro e elimina il messaggio dalla discussione.

Riguardo al motivo per cui accade, è un bug specifico nel modo in cui Notification Center esegue il rendering del contenuto Unicode di questo messaggio. Il codice esegue un'operazione "non sicura" (qualcosa simile a 5 divisa per 0 e quindi non verifica risultati imprevisti) che causa un errore non gestito.

Quindi, poiché il Centro notifiche non è in grado di eseguire il rendering del blocco di testo e in definitiva arresta in modo anomalo il Springboard che non ha il codice per gestire questo errore con garbo. Quando non è presente alcun gestore di errori specifico, la maggior parte delle operazioni ha un fail safe "riavvia te stesso" per provare e correggere l'errore.

Unicode è un modo di codificare i caratteri utilizzati per gestire le lingue con un numero di caratteri maggiore rispetto all'inglese. I programmatori possono avere problemi perché hanno imparato a programmare usando il testo ASCII e trascurano di scrivere il loro software con il completo supporto Unicode.

Un buon articolo su questo spiega "se stai ancora programmando in quel modo, non sei molto meglio di un medico che non crede ai germi ".

Questo altro articolo spiega bene questa situazione specifica.

Apple potrebbe effettuare revisioni più restrittive del codice, avere test unitari specifici o consentire agli utenti finali testare il loro codice come in questo e simile casi .

    
risposta data 28.05.2015 - 03:38
fonte
6

È qualcosa che Apple può risolvere.

Il problema sembra provenire dal modo in cui il telefono tenta di mostrare il messaggio nelle notifiche. I personaggi causano l'interruzione del sistema, in modo che provi brevemente a mostrarlo prima di bloccarsi e quindi a reimpostare il telefono nel tentativo di risolverlo.

Ecco alcune correzioni a breve termine che puoi eseguire fino a quando Apple risolve il problema.

  • Chiedi alla persona che ti ha inviato il messaggio dannoso di inviarne un'altra messaggio che cancella efficacemente il filamento iniziale

  • Inviati un messaggio tramite Siri, il foglio di condivisione o dal tuo Mac.

  • Un altro lettore nota che "l'invio di una foto al contatto tramite l'app Foto può consentire loro di accedere alla cronologia dei messaggi e elimina la conversazione "

fonte: link

    
risposta data 28.05.2015 - 00:17
fonte

Leggi altre domande sui tag