このウェブページのスクリーンショットから、以下の脆弱性に関する主要な情報を取得できます。 1. 脆弱性の説明: - 問題:I2Cバスコントローラ(例えばVersaclockやAIC32x4 I2Cデコーダなど)において、I2C転送がクロックコントローラの コールバックからトリガーされると、デッドロックが発生する可能性がある。 - 原因:クロックコントローラはまず ミューテックスを取得し、準備処理を実行する。この準備処理にはI2Cアクセスが含まれる。I2Cアクセスは、 コールバックによってクロックコントローラを再開させる際に、再度 ミューテックスの取得を試みるため、デッドロックを引き起こす。 2. 解決策: - 修正内容:I2Cバスコントローラの において、 および 関数を使用し、実行時にクロックを一時停止および再開することで、 ミューテックスのロックを回避する。 3. 影響を受けるコード: - ファイル: - 修正箇所:ファイル内の2395行目および2406行目。 4. 修正されたコード: - 修正内容: 関数において、 呼び出しを削除し、代わりに を直接呼び出すように変更した。 - 修正内容: 関数において、 呼び出しを削除し、代わりに を直接呼び出すように変更した。 5. 修正されたコード例: 6. 修正されたコード例: 7. 修正されたコード例: 8. 修正されたコード例: これらの情報により、この脆弱性の背景、原因、修正方法、および影響を受けるコードスニペットに関する理解を深めることができます。