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

tari-project / tari / 32820869039
77%

Build:
DEFAULT BRANCH: development
Ran 25 Aug 2026 08:17AM UTC
Jobs 1
Files 705
Run time 2min
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

25 Aug 2026 07:17AM UTC coverage: 63.483% (+0.9%) from 62.631%
32820869039

push

github

web-flow
fix(wallet_ffi): make TariVector borrow instead of consume (#7964) (#7967)

`TariVector::to_string_vec()` took `&self` but rebuilt the backing
buffer with `Vec::from_raw_parts(..).into_iter()`, which freed the
caller's allocation and left `(*tv).ptr` dangling. Every entry point
that reads a vector of strings/commitments inherited it, so reusing one
`TariVector` across two calls was a use-after-free and a double free,
and `destroy_tari_vector()` leaked everything it was documented to
reclaim.

- `to_string_vec()`/`to_commitment_vec()` now borrow via
`slice::from_raw_parts` and return an `InterfaceError` on invalid UTF-8
instead of `.expect()`-ing across the `extern "C"` boundary. Both, plus
the new `as_c_string_slice()`/`as_u64_slice()` and the renamed
`as_utxo_slice()` (was `to_utxo_vec()`, which also consumed), are now
`unsafe fn` with documented contracts.
- `tari_vector_push_string()` validates the tag, the payload pointer and
the incoming string *before* touching the buffer, then pushes into the
reconstructed vector in place, so a rejected push leaves the vector
byte-for-byte unchanged and a successful one leaks nothing.
- `create_tari_vector()` allocates with the element type its tag
advertises. It previously allocated `Vec::<c_void>::with_capacity(2)` (2
bytes) and handed it out as a vector of 8-byte elements.
- `destroy_tari_vector()` reclaims the header, the backing allocation
(with the tag's element layout) and every element: `CString`s for
`Text`/`Commitment`, and the five inner C strings of each `TariUtxo`.
- `wallet_get_utxos()` consumed its caller's `states` vector the same
way and `unwrap()`ed an out-of-range status; it now borrows and reports
the error. Adds `tari_vector_push_u64()` so a `U64` vector can actually
be built through the C ABI - without it the only way to produce a
`states` filter was to hand-build the struct and payload in C, which
`destroy_tari_vector()` cannot free. `I64` vectors are never taken as
input anywhere, so no ... (continued)

76006 of 119726 relevant lines covered (63.48%)

223833.99 hits per line

Coverage Regressions

Lines Coverage ∆ File
17
54.74
3.82% base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs
13
80.65
-6.99% comms/core/src/connectivity/proactive_dialer.rs
7
68.22
-2.8% comms/core/src/protocol/messaging/protocol.rs
6
54.51
0.94% base_layer/core/src/chain_storage/blockchain_database.rs
6
92.18
-1.27% comms/dht/src/outbound/broadcast.rs
5
79.93
-1.7% comms/core/src/connection_manager/manager.rs
5
60.75
-0.35% comms/core/src/connectivity/manager.rs
4
94.34
-2.52% comms/core/src/protocol/messaging/outbound.rs
3
86.7
-0.38% comms/dht/src/actor.rs
2
81.36
-3.39% comms/core/src/pipeline/outbound.rs
1
46.97
3.03% base_layer/core/src/chain_storage/block_add_result.rs
1
25.29
-1.15% base_layer/core/src/chain_storage/error.rs
1
79.45
2.74% base_layer/node_components/src/blocks/chain_block.rs
1
38.6
-0.04% base_layer/wallet/src/transaction_service/storage/sqlite_db.rs
Jobs
ID Job ID Ran Files Coverage
1 32820869039.1 25 Aug 2026 08:17AM UTC 705
63.48
GitHub Action Run
Source Files on build 32820869039
  • Tree
  • List 705
  • Changed 39
  • Source Changed 0
  • Coverage Changed 39
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32820869039
  • e6fe2701 on github
  • Prev Build on development (#32741956734)
  • Next Build on development (#32836793780)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc