diff options
| author | Eric Biggers <ebiggers@kernel.org> | 2026-10-25 13:48:07 -0700 |
|---|---|---|
| committer | Eric Biggers <ebiggers@kernel.org> | 2026-10-28 10:53:43 -0700 |
| commit | c349b233d6ab0fc3517401a1e2d36f5f90eb8c9b (patch) | |
| tree | cd99f4ecb7c793e3b7e3fe1eb84d5d9c42fe920c /tools/perf/scripts/python | |
| parent | 28d74059fddbd8ae83c7715056b303c402071f6f (diff) | |
| download | linux-c349b233d6ab0fc3517401a1e2d36f5f90eb8c9b.tar.gz linux-c349b233d6ab0fc3517401a1e2d36f5f90eb8c9b.zip | |
fsverity: Set S_VERITY only after rollback is no longer possible
Commit f77f281b6118 ("fsverity: use a hashtable to find the
fsverity_info") changed the implementation of FS_IOC_ENABLE_VERITY to
make concurrent reads start going through fsverity verification slightly
earlier than they did before.
Instead of it happening when enable_verity() calls fsverity_set_info(),
it now happens when ->end_enable_verity() sets S_VERITY.
However, ext4 and btrfs can roll back verity after they set S_VERITY,
causing a use-after-free.
Fix that by making ext4 and btrfs set S_VERITY only after rollback is no
longer possible. On failure, don't roll back S_VERITY, but do roll back
the filesystem-specific verity flag.
Also update enable_verity() to handle any future instances of this bug
more safely by warning and *not* freeing the fsverity_info.
Finally, tweak some comments. Clarify one, and move information from
another to its proper place in the comment for ->end_enable_verity().
Fixes: f77f281b6118 ("fsverity: use a hashtable to find the fsverity_info")
Cc: stable@vger.kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20261025204807.122875-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
