パスワードを忘れた? アカウント作成
15357613 story
Chrome

Chrome OS アップデート後にログインできなくなるトラブル、原因は 1 文字の Typo 69

ストーリー by headless
修正 部門より
先日リリースされた Chrome OS 91.0.4472.165 ではアップデート後にログインできなくなるなどのトラブルが報告されていたが、原因は 1 文字の Typo だったようだ(Android Police の記事 [1][2]The Verge の記事SlashGear の記事)。

問題発生を受けて Google はこのビルドの提供を中止したが、既にインストールしてしまった場合はログイン画面から先に進めなくなるほか、最悪の場合はブートループに入ってログイン画面にも到達できなくなることもあったという。

7 月 21 日には問題を修正した 91.0.4472.167 がリリースされた。変更された vault_keyset.cc の diff をみると、修正前は2つの条件式のビット論理積 (&) を評価していた部分で、「&」が1つ追加されて論理積 (&&) に修正されている。
  • なんで? (スコア:3, 参考になる)

    by Anonymous Coward on 2021年07月23日 13時42分 (#4076417)

    `key_data_->label().empty()`に副作用がないなら条件付きか否かで変わらなくない?
    と思ったが、C++だと&はビット演算で両方trueでもfalseになることがあるのか。
    &&と&は条件付きかだけじゃなく評価の仕方が違うのね。
    C#で両辺boolなら無視できるパフォーマンス上の問題でしかないからピンとこなかったわ。

    ここに返信
    • by Anonymous Coward

      C#とかJavaでも両辺が整数とかだったりすると…
      C#とかJavaだと評価の仕方が違うというかboolとそれ以外で事実上全然別の演算子ですね。

      • by Anonymous Coward

        C#は演算子オーバーロードがあるのでなんでもあり。
        ただifの条件にbool以外は入らないからこういう問題はまず起こらない。
        boolへの暗黙の型変換が定義されてれば起こせなくはないがまぁ起きない

    • by Anonymous Coward

      確かに&はビット演算ですが今回の原因はビット演算だからではありません。
      &&はショートサーキット評価で左の値がfalseのときは右側が実行されませんが、&では左の値に関わらず右が実行されてしまいます。
      key_data_の定義は
      base::Optional<KeyData> key_data_;
      となっており、base::Optionalというのはstd::optionalのChromium版の実装です。
      左側では key_data_.has_value() と値が存在しているかどうかをチェックした上で、右側で key_data_->label() とデータにアクセスしていますが、has_value()がfalseならアクセスすべきデータが存在しないのでundefined behaviourとなります。多分nullptrへのアクセスでクラッシュしますね。

      • by Anonymous Coward

        あーnullアクセスか。これなら普通だな。勘違いしてた。
        メンバアクセスがアロー演算子 [github.io]と(若干良く分かってない)。
        if(!(key_data_ is null) && !key_data_.label().empty()){ return key_data_.label(); }
        相当か。

        この辺null条件演算子が出来てからだいぶ楽になったなぁ。

      • by Anonymous Coward

        unique_ptrとかならnullアクセスになるだろうけど、今回はOptionalだからnullアクセスにはならない。
        未初期化なデータ領域へのアクセスでのUB。

    • by Anonymous Coward

      Cだと演算優先順位も微妙に違うから ことによっちゃ大事に

  • by Anonymous Coward on 2021年07月23日 11時57分 (#4076377)

    OSにログインできるかどうかなんて、一番基本的な動作だと思うのだけれど、リリース前にリグレクションテストとかしてないのか?
    グーグルのサービスってみんなそういうものなの?

    一寸怖い。

    ここに返信
    • by Anonymous Coward on 2021年07月23日 13時17分 (#4076409)

      機能の確認どころか、電源入らなくなるというバグあってもリリースされるし、修正されずにバグ残ったまま、次のリビジョン出すのでリリース前にテストは、おそらくやってない。
      https://issuetracker.google.com/issues/172225953 [google.com]

      アップデートの無視とかできればいいんだけど、Chromebookはそれも出来ないからなぁ

    • Re:リグレクションテスト (スコア:2, おもしろおかしい)

      by Anonymous Coward on 2021年07月23日 14時47分 (#4076455)

      グーグルのサービスってみんなそういうものなの?

      そういうものですよ。
      永久β版でおなじみのグーグルですから。

    • by Anonymous Coward

      これは本当にそう思う。
      ワンパス通せば100%見つけられる内容なんだが、となるとまったくテストしていないんだろうなと思ってしまう。

      • by Anonymous Coward

        さすがに認証周りを書き換えて起こったミスではないよね?
        逆に上手いこと書き間違えたら、アカウント名・パスワードを無視して何でもログインできるようになってたかもしれない、とかそういう部分の修正ではないんだよね?
        そこがテストされてないとかだったら危なすぎる。

        ログインが完了してデスクトップを準備してる途中で転けて振り出しに戻る、だよね?

    • by Anonymous Coward

      どう覚えたらリグレッションをリグレクションって覚えられるの? リフレクションに引きづられてるのかな?

    • by Anonymous Coward

      結果から見ると、わかる通りこれはテストしてないですね。

      >グーグルのサービスってみんなそういうものなの?
      すべてのサービスにおいてそうであるかわ不明だけれども
      少なくともChromeOSではそうであることが分かったし

      WebブラウザのChromeも、2017年に起こしたセキュリティ・
      インシデントからしても、そんな状況であることは分かっていたので
      さも驚きはしない。

    • by Anonymous Coward

      手広く作ると自分で使わないものを作らせるケースも出るわけで
      Googleに限らずものづくりのあるあるではないかと

  • by Anonymous Coward on 2021年07月23日 12時28分 (#4076392)

    > 2021 年 9 月 30 日より、Google ブックマークはご利用いただけなくなります

    さらっと告知されていました

    ここに返信
    • by Anonymous Coward

      今初めて知りました。ありがとう。
      chrome以外のブラウザからも使えるから結構便利に使っていたのだけど、今後どうしよう。

    • by Anonymous Coward

      そうそう。
      どうしようかな。

      • by Anonymous Coward

        検索してください
        ネットアクセスする前に必ずGoogle様に情報送る、という有り難い変更でしょうし

  • by Anonymous Coward on 2021年07月23日 12時05分 (#4076381)

    Chromebookを採用した小中学校は大丈夫なのでしょうか?
    この日付ですと、午前中授業や終業式に入るか入らないかのタイミングです。自宅に持ち帰って活用するように文部科学省からは通達が出ているけど、自宅でいきなりログインできないということになったら大変でしょう。
    自宅に持ち帰る対応が準備できていない学校も多いようなので、そちらは二学期の授業が始まってから混乱が発生するのかもしれません。

    ゲストログインができない設定にした教育委員会もあるだろうし、パワーウォッシュもできるのかどうか。USBからの回復策とか教員側は何も把握していないでしょう。さて、どうなるのか。

    自分のChromebookは、職場に放置したままなので明日休日出勤して確認します。土日に使用する必要があるんですけどねぇ・・・。

    ここに返信
    • by Anonymous Coward

      自業自得。
      問題が起きて困るようなところにChromebookなんかを導入すんなよ。

  • by Anonymous Coward on 2021年07月23日 12時19分 (#4076387)

    驚きはないです

    ここに返信
  • by Anonymous Coward on 2021年07月23日 12時30分 (#4076393)

    Typoごときで恐れをなしてはいけない

    ここに返信
  • by Anonymous Coward on 2021年07月23日 12時37分 (#4076396)

    どうしてこれが無い!

    iOS7.0.6で修正された「最悪のセキュリティバグ」はありがちなコーディングミスで発生していた
    https://apple.srad.jp/story/14/02/24/094232/ [apple.srad.jp]

    ここに返信
    • by Anonymous Coward

      「バグだ」という以外の共通点はないからね。全世界で仕事や学業に使われてる実用的な道具と意識高い系の玩具ではカテゴリーは全然違う。

    • by Anonymous Coward

      どんな大企業でも、コピペとコピペミスとtypoは永遠に続く課題だなぁ。

  • by Anonymous Coward on 2021年07月23日 15時25分 (#4076476)

    こういったものを廃止していった方が良いのではないかね。
    昔は1文字でも文字数を削減するために、こうしていたのだろうけれど、今は間違いの元じゃん。

    ここに返信
  • by Anonymous Coward on 2021年07月23日 15時38分 (#4076483)

    で、ハッピーエンドやね

    ここに返信
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...