Commentaires : Chrome OS : un caractère de trop dans le code crée un bug frustrant sur les Chromebook

Réputés pour leur fiabilité et leur sécurité, les Chromebook
de Google ont récemment fait face à un étrange bug.

1 « J'aime »

Titre :

un caractère de trop dans le code

Non, un caractère manquant, «  &  » au lieux de «  &&  » comme le dit le reste de l’article :wink:
Le correctif a rajouté ce caractère manquant - le bug est apparu dans ce changement ligne 471.

Ce qui me surprend, c’est que si les deux valeurs sont des booléens pures (0 ou 1), le test devrait tout de même fonctionner… Possible que has_value retourne une valeur supérieure à 1 (genre un test sur un bitfield, present_features & one_feature_bit_mask).

EDIT - apparemment non c’est bien un bool :

constexpr bool has_value() const { return storage_.is_populated_; }

Solution temporaire : pas besoin de resetter l’ordi, apparemment refermer l’écran puis le rouvrir suffit. Ou forcer un redémarrage en gardant le bouton power appuyé.

3 « J'aime »

En effet, nous avons fait la même erreur que Google : une faute de frappe ! C’est corrigé, merci :slight_smile:

2 « J'aime »

Oui c’est très étrange. bool & bool devrait être équivalement à bool && bool.
Mais bon, c’est ça d’utiliser un langage qui permet une opération bitfield sur des booléens. En Go par exemple, le compilateur aurait gueulé.

J’ai pensé à la même chose.

En fait avec un && si le premier argument est mauvais le second n’est même pas testé.
Avec un & il est testé quand même, il ne faut pas oublier que chaque test n’est pas forcément un simple test ça peut aussi exécuter du code.

Titre : « Réputés pour leur fiabilité et leur sécurité »

Bonne vanne. Très très bonne vanne.
Mais on peut rien faire avec un chromebook. Normal que ça soit fiable. Securisé. Mais il n’y a rien à vouloir pirater sur un chromebook.

Mais bonne vanne.