• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vbpf / prevail / 29361137028
87%

Build:
DEFAULT BRANCH: main
Ran 14 Jul 2026 07:25PM UTC
Jobs 2
Files 79
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Jul 2026 07:15PM UTC coverage: 86.759% (+0.02%) from 86.742%
29361137028

push

github

elazarg
Soundly narrow sign-extending memory loads, extend to ctx inline fields

On a signed memory load the narrow helper set uvalue to the
zero-extended range [0, 2^(8*width) - 1]. That is unsound: the unsigned
64-bit view of a sign-extended negative result sits up near 2^64,
disjoint from that range, so no concrete value satisfies the resulting
abstract state (e.g. an s8 of -1 has svalue=-1 but uvalue=2^64-1, not
uvalue<=255).

The fix is to havoc uvalue on signed loads, matching what FiniteDomain
already does for arithmetic: sign_extend routes through overflow_bounds,
which havocs uvalue when the value wraps. The narrow helper was the one
load path that bypassed this. Register MOVSX was already sound and is
unchanged.

The narrowing logic moves into a shared helper that is now also applied
to ctx inline-field loads, which previously got no width-based bound at
all (only packet/shared loads did). Reusing the helper also fixes the
same uvalue unsoundness on the packet/shared signed path.

Tests cover signed and unsigned loads across widths for ctx inline
fields, plus a signed packet load checking that svalue narrows while
uvalue is left unconstrained.

Signed-off-by: Alex Forster <alex@alexforster.com>
Co-Authored-By: Claude <noreply@anthropic.com>

13 of 14 new or added lines in 1 file covered. (92.86%)

9324 of 10747 relevant lines covered (86.76%)

6393562.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.93
0.16% src/crab/ebpf_transformer.cpp
Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 29361137028.1 14 Jul 2026 08:22PM UTC 77
85.03
GitHub Action Run
2 run-Release - 29361137028.2 14 Jul 2026 07:25PM UTC 79
85.87
GitHub Action Run
Source Files on build 29361137028
  • Tree
  • List 79
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29361137028
  • 098eac90 on github
  • Prev Build on main (#29319503431)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc