Source: kallisto
Version: 0.48.0+dfsg-3
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: [email protected]

Following up with analysis after the test failure was mentioned by
Andreas in Matrix "Debian Tiny Tasks".

I do not have time to attack it and not familiar with the code-base but
this analysis should help.

Referring to the failed build log:

https://salsa.debian.org/med-team/kallisto/-/jobs/8480324#L2345

"corrupted size vs. prev_size" :- The direct cause is out-of-bounds writes into 
malloc control structure fields.

E.g: given `A = calloc(1, 16); B = calloc(1,16)` and A contiguous with B.
If `struct *S = A` and `sizeof(A) == sizeof(*S)` then S[0] is valid but S[1] is 
out-of-bounds and a 
write may trample on the control structure preamble of B.

>From what I can deduce it occurs in 
>`ext/bifrost/src/CompactDBG.tcc::CompactDBG::construct()` template after line 
>3323 and before line 3331.
Most likely the reference to `size()` in line 3329.

if (opt.verbose) cout << "CompactedDBG::construct(): After join tips using 
mercy k-mers: " << size() << " unitigs" << endl;

https://salsa.debian.org/med-team/kallisto/-/blob/72ff60faebbab43eba75e55fe393d88de42116a5/ext/bifrost/src/CompactedDBG.tcc#L3323

Disabling `opt.verbose` would be an easy way to (dis)prove that.

Reply via email to