Windows: CR3-write refresh never fires

オープン
#426 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust
領域
security, testing

調査の方向性

Read src/os/windows/mod.rs around lines 256–283 and src/lib.rs around line 628 to trace the CR3 cache check, insertion, and callback error handling. The issue reports the condition can never pass and notes that collection reparses PDBs; first verify those paths and inspect nearby tests or SIMICS guidance. Done means refreshes occur when a processor's CR3 changes and collection errors do not abort the callback.

索引モデルが issue の本文から書いたものです。

説明

Where

Problem
The guard requires cr3_cache.get(..).is_some_and(|v| *v != value), but cr3_cache is only inserted inside that block; no other writer exists.

Impact
The symbol tree stays frozen at the process current at fuzz start; code in other processes or later-loaded modules gets no symbolic coverage.

Suggested fix
Use self.cr3_cache.get(&processor_nr) != Some(&value), insert first, and log-and-continue on collect() errors (the callback is .expect()ed in lib.rs, so an error would abort SIMICS). collect() is also expensive (re-parses PDBs).

Status
Confirmed by reading the code at 79972db. Found by reading the code; not reproduced under SIMICS.

主要言語
Rust
スター
335
フォーク
26
平均マージ
1日 50分
マージ済み PR(30日)
12

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

intel/tsffs のほかの issue

intel/tsffs の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。