chore(core): remove `unsafe impl Sync for FontInfo`
What changed, and why it matters
This commit removes a small piece of Rust code that manually marked a font data structure as safe to share between threads. The commit message calls it a cleanup ('chore') and gives no security context. On its own, the change is minor and defensive, but the reason for the original unsafe marker and its removal is not explained in the materials provided.
Treat as a minor defensive cleanup. If auditing, verify whether `FontInfo` is ever accessed concurrently and whether the removed `Sync` impl could have masked unsound sharing of interior-mutable or raw-pointer state. No immediate action is indicated by the commit alone.
Security signals we found
Removal of an `unsafe impl Sync` marker
No changelog entry and no security framing by the vendor
No diff evidence of concurrent access to FontInfo
No explicit bug or exploit path described in commit materials
Evidence from the diff
The diff deletes unsafe impl Sync for FontInfo {} from core/embed/rust/src/ui/display/font.rs. In Rust, Sync means a type can be safely shared across threads. The original implementation relied on the claim that the device runs in a single-threaded environment. Removing it suggests the code no longer needs the trait, or the maintainers want to avoid an unnecessary unsafe impl. There is no accompanying logic change in the diff, no changelog entry, and no disclosed vulnerability details.
Changed components
core/embed/rust/src/ui/display/font.rsFontInfo structTrezor Core Rust UI font renderingInspect captured patch +0 / −3
diff --git a/core/embed/rust/src/ui/display/font.rs b/core/embed/rust/src/ui/display/font.rs
index e6ebc6f5..3b19f68f 100644
--- a/core/embed/rust/src/ui/display/font.rs
+++ b/core/embed/rust/src/ui/display/font.rs
@@ -25,9 +25,6 @@ pub struct FontInfo {
/// Convenience type for font references defined in the `fonts` module.
pub type Font = &'static FontInfo;
-// SAFETY: We are in a single-threaded environment.
-unsafe impl Sync for FontInfo {}
-
/// Representation of a single glyph.
/// We use standard typographic terms. For a nice explanation, see, e.g.,
/// the FreeType docs at https://www.freetype.org/freetype2/docs/glyphs/glyphs-3.html
Why this scored 26/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.