diff options
| author | Samuel Moelius <sam.moelius@trailofbits.com> | 2026-07-02 00:27:35 +0000 |
|---|---|---|
| committer | Mikulas Patocka <mpatocka@redhat.com> | 2026-07-08 22:33:34 +0200 |
| commit | a868196f03c2b19418ae3d2b69e195d668a271e5 (patch) | |
| tree | 7fa93a0c90ea5256eb6cb47eca86e49a976ddba5 /rust/zerocopy/git@git.tavy.me:linux-stable.git | |
| parent | 9743132a41f4d9d0e54c5f2adcb821b04796bab1 (diff) | |
dm era: fix out-of-bounds memory access for non-zero start sector
dm-era tracks writes in target-relative blocks, but era_map() calculates
the writeset block before applying the target offset. Tables with a
non-zero start sector can therefore pass an absolute mapped-device block
to metadata_current_marked().
If the absolute block is beyond the current writeset size,
writeset_marked() tests past the end of the in-core bitset. KASAN reports
this as a vmalloc-out-of-bounds access.
Apply the target offset before calculating the era block so writeset
lookups use the target-relative block number.
Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@trailofbits.com>
Reviewed-by: Ming-Hung Tsai <mtsai@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Fixes: eec40579d848 ("dm: add era target")
Diffstat (limited to 'rust/zerocopy/git@git.tavy.me:linux-stable.git')
0 files changed, 0 insertions, 0 deletions
