From: Eric Biggers <ebiggers@kernel.org>
To: Sami Tolvanen <samitolvanen@google.com>
Cc: dm-devel@lists.linux.dev, Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>,
Mikulas Patocka <mpatocka@redhat.com>,
Benjamin Marzinski <bmarzins@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/22] dm-verity: more FEC fixes and cleanups
Date: Tue, 3 Mar 2026 12:16:56 -0800 [thread overview]
Message-ID: <20260303201656.GE2846@sol> (raw)
In-Reply-To: <CABCJKufKYMPcjiviWdGR=h5HVAmavwacsSdMNPQaaXeeL+GoFw@mail.gmail.com>
On Wed, Feb 11, 2026 at 02:29:28PM -0800, Sami Tolvanen wrote:
> Hi Eric,
>
> On Thu, Feb 5, 2026 at 9:01 PM Eric Biggers <ebiggers@kernel.org> wrote:
> >
> > This series applies to linux-dm/for-next. It can also be retrieved from:
> >
> > git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git dm-verity-fec-2026-02-05
> >
> > Patches 1-5 fix bugs in dm-verity's forward error correction (FEC):
> >
> > - FEC and hash devices that are too small were not rejected.
> >
> > - Corrected blocks could be multiple-counted in statistics.
> >
> > - The erasures array was significantly oversized for its use case.
> >
> > - An out-of-bounds read could occur when decoding an RS codeword whose
> > parity bytes span a block boundary.
>
> Thanks for the fixes, these look correct to me. It would be nice to
> have tests for the edge cases though. Perhaps in the
> verity-compat-test script that's included in the cryptsetup repo?
>
> > Patches 6-22 clean up the FEC implementation to be easier to understand
> > and improve documentation and log messages.
>
> The clean-ups also look reasonable. For the series:
>
> Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
>
> Sami
"FEC and hash devices that are too small were not rejected" should be
fairly straightforward to test.
Testing "Corrected blocks could be multiple-counted in statistics" and
"An out-of-bounds read could occur when decoding an RS codeword whose
parity bytes span a block boundary" would require injecting kmalloc
failures. It might be possible using the fault injection framework.
"The erasures array was significantly oversized for its use case" just
changes the size of an internal structure. Not testable from userspace.
Unfortunately the verity-compat-test script isn't in very good shape. I
opened a pull request to clean it up:
https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/890
After that I'll add test cases for at least the "FEC and hash devices
that are too small were not rejected" bug.
I noticed verity-compat-test also never tests fec_roots != 2, even
though it contains code that seems to have been intended to. So I'll
plan to fix that too, though unless we're able to add fault injection
too it won't specifically cover the bug fixed by this series.
Anyway, point is, I'm indeed working on improving the test script. I
think these patches can be applied for 7.1 either way though.
- Eric
next prev parent reply other threads:[~2026-03-03 20:17 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-06 4:59 [PATCH 00/22] dm-verity: more FEC fixes and cleanups Eric Biggers
2026-02-06 4:59 ` [PATCH 01/22] dm-verity-fec: correctly reject too-small FEC devices Eric Biggers
2026-02-06 4:59 ` [PATCH 02/22] dm-verity-fec: correctly reject too-small hash devices Eric Biggers
2026-02-06 4:59 ` [PATCH 03/22] dm-verity-fec: fix corrected block count stat Eric Biggers
2026-02-06 4:59 ` [PATCH 04/22] dm-verity-fec: fix the size of dm_verity_fec_io::erasures Eric Biggers
2026-02-06 4:59 ` [PATCH 05/22] dm-verity-fec: fix reading parity bytes split across blocks (take 3) Eric Biggers
2026-02-06 4:59 ` [PATCH 06/22] dm-verity: rename dm_verity::hash_blocks to dm_verity::hash_end Eric Biggers
2026-02-06 4:59 ` [PATCH 07/22] dm-verity-fec: improve documentation for Forward Error Correction Eric Biggers
2026-02-06 4:59 ` [PATCH 08/22] dm-verity-fec: replace {MAX,MIN}_RSN with {MIN,MAX}_ROOTS Eric Biggers
2026-02-06 4:59 ` [PATCH 09/22] dm-verity-fec: use standard names for Reed-Solomon parameters Eric Biggers
2026-02-06 4:59 ` [PATCH 10/22] dm-verity-fec: rename "RS block" to "RS codeword" Eric Biggers
2026-02-06 4:59 ` [PATCH 11/22] dm-verity-fec: replace io_size with block_size Eric Biggers
2026-02-06 4:59 ` [PATCH 12/22] dm-verity-fec: rename rounds to region_blocks Eric Biggers
2026-02-06 4:59 ` [PATCH 13/22] dm-verity-fec: simplify computation of rsb Eric Biggers
2026-02-06 4:59 ` [PATCH 14/22] dm-verity-fec: simplify computation of ileaved Eric Biggers
2026-02-06 4:59 ` [PATCH 15/22] dm-verity-fec: simplify deinterleaving Eric Biggers
2026-02-06 4:59 ` [PATCH 16/22] dm-verity-fec: rename block_offset to out_pos Eric Biggers
2026-02-06 4:59 ` [PATCH 17/22] dm-verity-fec: move computation of offset and rsb down a level Eric Biggers
2026-02-06 4:59 ` [PATCH 18/22] dm-verity-fec: compute target region directly Eric Biggers
2026-02-06 4:59 ` [PATCH 19/22] dm-verity-fec: pass down index_in_region instead of rsb Eric Biggers
2026-02-06 4:59 ` [PATCH 20/22] dm-verity-fec: make fec_decode_bufs() just return 0 or error Eric Biggers
2026-02-06 4:59 ` [PATCH 21/22] dm-verity-fec: log target_block instead of index_in_region Eric Biggers
2026-02-06 4:59 ` [PATCH 22/22] dm-verity-fec: improve comments for fec_read_bufs() Eric Biggers
2026-02-11 22:29 ` [PATCH 00/22] dm-verity: more FEC fixes and cleanups Sami Tolvanen
2026-03-03 20:16 ` Eric Biggers [this message]
2026-03-04 8:25 ` Milan Broz
2026-03-04 9:00 ` Eric Biggers
2026-03-04 9:34 ` Milan Broz
2026-03-04 17:45 ` Eric Biggers
2026-03-04 19:29 ` Milan Broz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260303201656.GE2846@sol \
--to=ebiggers@kernel.org \
--cc=agk@redhat.com \
--cc=bmarzins@redhat.com \
--cc=dm-devel@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=samitolvanen@google.com \
--cc=snitzer@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox