Réputés pour leur fiabilité et leur sécurité, les Chromebook
de Google ont récemment fait face à un étrange bug.
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
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é.
En effet, nous avons fait la même erreur que Google : une faute de frappe ! C’est corrigé, merci
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.