Une faute de frappe problématique fait buguer de nombreux Chromebook

 

Une faute de frappe est bien souvent anodine. Pourtant, lorsqu'il s'agit du code de la mise à jour d'un système d'exploitation, cela peut s'avérer bien plus problématique.

L'Acer Chromebook 514

L’Acer Chromebook 514 // Source : Acer

Depuis quelques jours, certains utilisateurs de Chrome OS ont reçu une mise à jour de leur système. Portant le numéro 91.0.4772.165, cette version est très problématique, empêchant plusieurs utilisateurs d’utiliser leur PC.

Un modérateur du subreddit r/chromeos prévient : « nous vous recommandons de NE PAS mettre à jour jusqu’à nouvel ordre ». La raison de cette alerte ? « La dernière mise à jour stable empêche les utilisateurs de se connecter ». Pour certains néanmoins, il est trop tard, la mise à jour a été faite et il leur est devenu impossible de s’identifier sur leur Chromebook, leur mot de passe n’étant plus considéré comme valide.

Google enchaine les erreurs

Google a rapidement retiré la mise à jour de ses serveurs et semble conscient du problème. Une nouvelle version devrait être déployée aujourd’hui (mercredi 21 juillet), mais il n’est pas dit que ceux ayant déjà réalisé la mise à jour .165 pourront l’appliquer simplement sans pouvoir se loguer à leur système, à moins de réaliser une restauration complète du système, et donc de perdre potentiellement certaines données.

Ce bug arrive juste après un autre problème non négligeable de Chrome OS. La version 91.0.4472.147 (la mise à jour précédente) avait déjà été retirée en raison d’une consommation anormale du CPU, forçant certains à revenir sur la version 91.0.4472.114. Autant dire que les utilisateurs de ChromeOS ne doivent pas se sentir particulièrement rassurés à l’arrivée des prochaines mises à jour.

Une simple faute de frappe

Mais d’où vient le problème exactement ? Un utilisateur de Reddit s’est penché sur le code des dernières mises à jour et il semblerait que l’erreur provienne d’une simple erreur dans une instruction conditionnelle.

En C++, comme dans d’autres langages de programmation, pour vérifier que plusieurs conditions sont respectées simultanément, on utilise l’opérateur logique « && ». Or dans la dernière mise à jour, pour vérifier l’identification du compte, les valeurs sont séparées par un simple « & ».

if (key_data_.has_value() & !key_data_->label().empty()) {

vs

if (key_data_.has_value() && !key_data_->label().empty()) {

Dommage qu’il n’y ait pas eu plus de tests effectués en amont pour repérer cette faute de frappe très problématique qui aura fait perdre beaucoup de temps aux utilisateurs de ChromeOS.

Les derniers articles