AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 19 Bitcoin

fix(core): render a full-turn sector as a full circle

Public commit record

What the developer wrote

Authored by tychovrahe

85/100 · Strong
fix(core): render a full-turn sector as a full circle

`fill_sector` normalizes both endpoints into <0..360), which maps a span
of exactly one turn onto a single value. The octant loop reads that as a
zero-width sector and skips all eight octants, and the centre pixel is
skipped as well, so the call draws nothing at all where a full circle is
meant.

Detect the span before normalizing and pin it to the full range. Only a
forward span counts, so the `start > end` wrap-around convention and every
partial sector keep their existing behaviour. Normalization still runs on
both endpoints first, so its bound assert is never bypassed -- an infinite
endpoint traps rather than silently becoming a circle.

Verified that (0,360), (0,720) and (-360,0) now fill all eight octants
plus the centre, while (0,90), (90,180), (0,359.64), (300,60), (36,108)
and the empty (0,0) are unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[no changelog]
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This is a UI graphics bug fix in the Trezor hardware wallet firmware. When drawing a circular progress indicator or pie-chart-like shape spanning a full 360 degrees, the code mistakenly treated it as an empty slice and drew nothing. The patch detects a full-circle span before normalizing the angles and forces it to draw all eight segments plus the center pixel. There is no direct security vulnerability here; it is a rendering correctness fix.

Recommended action

No security action required. Treat as a normal UI correctness fix and include in regular firmware release testing.

Security signals we found

01

No memory safety, cryptographic, or authorization issues present in the diff

02

Change is confined to UI rendering logic

03

No input from untrusted sources is processed beyond existing angle parameters

04

No changelog entry suggests developer considered this a routine bug fix

Risk score

Why this scored 19/100

Our methodology →
Potential impact 2/30
Exploitability 1/25
Stealth signal 1/15
Affected reach 2/15
Confidence 9/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.