Les développeurs d’iCloud n’avaient manifestement pas prévu que le nom de famille d’un utilisateur pouvait être « True ». C’est le constat de Rachel True, qui ne parvient pas à utiliser son compte iCloud depuis plus de six mois. L’erreur affichée dans la boîte de dialogue qu’elle a partagée sur Twitter à la fin du mois de février prouve bien que son patronyme est la source du problème : « Type error: cannot set value ‘true’ to property ‘lastName’
».
Pour comprendre le problème, il faut savoir que « true », « vrai » en anglais, est utilisé en développement pour les données de type booléen, qui sont soit vraies (true), soit fausses (false). De ce fait, c’est un mot-clé spécial qu’on ne doit pas utiliser en développement pour autre chose que pour remplir un booléen. Le nom de famille de l’utilisateur sur iCloud n’est évidemment pas de type booléen, c’est du texte.
Le bug provient d’une mauvaise protection du champ de texte qui sert à enregistrer le nom de famille. Les développeurs qui créent les formulaires sont censés prendre des précautions pour s’assurer que l’information est bien stockée en texte, même si l’utilisateur saisit une valeur qui ressemble à un booléen. C’est une bonne pratique qui a été manifestement oubliée dans le code JavaScript de la version web d’iCloud. Résultat, son nom de famille a été enregistré par erreur comme un booléen, ce qui bloquait toute tentative de connexion à iCloud.
Fort heureusement pour madame True, son tweet a suffisamment circulé pour finalement attirer l’attention d’un développeur dans l’équipe d’iCloud. Après six mois sans accès à son compte, elle devrait enfin pouvoir utiliser son abonnement iCloud. Apple lui remboursera les six mois perdus, rien de plus.
Source : Les Joies du Code