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

vbpf / prevail / 26711049670
86%

Build:
DEFAULT BRANCH: main
Ran 31 May 2026 11:25AM 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

31 May 2026 11:14AM UTC coverage: 86.368% (-0.002%) from 86.37%
26711049670

push

github

elazarg
Havoc offsets on non-singleton-typeset pointer add/sub

When the destination register of an `add`/`sub` carries a non-singleton
typeset (two or more simultaneously possible pointer types, e.g. at a join
where the same register may be a context or shared pointer),
`primary_kind_variable_for_type` returns `nullopt` because there is no single
offset variable to update. Previously the offset update was silently skipped
while `svalue`/`uvalue` were still advanced, leaving the offset variables
stale. Subsequent `valid_access` checks then used the pre-arithmetic offset
and accepted out-of-bounds memory accesses, so a crafted program could pass
verification despite performing an OOB read/write.

Conservatively invalidate all offset variables (`havoc_offsets`) in this case,
mirroring the existing pattern in `shl()`/`lshr()`/`ashr()`. The same gap
existed on the register-register subtract path; both are fixed.

A `{number, pointer}` union has the same defect on a different path: it takes
the numeric `may_have_type(T_NUM)` fast-path, which advances `svalue`/`uvalue`
but never updates the pointer offset, again leaving it stale. Invalidate the
pointer offsets there too when the destination is not purely numeric.

Adds regression tests for the add, subtract, and {number, pointer} paths, plus
a companion showing a non-singleton register accessed in bounds still passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Elazar Gershuni <elazarg@gmail.com>

4 of 6 new or added lines in 1 file covered. (66.67%)

8997 of 10417 relevant lines covered (86.37%)

6413903.77 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
91.85
-0.17% src/crab/ebpf_transformer.cpp
Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 26711049670.1 31 May 2026 12:22PM UTC 79
84.62
GitHub Action Run
2 run-Release - 26711049670.2 31 May 2026 11:25AM UTC 79
85.49
GitHub Action Run
Source Files on build 26711049670
  • Tree
  • List 79
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 2b209bc4 on github
  • Prev Build on main (#26711020454)
  • Next Build on main (#26718371384)
  • 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