Skip to content

Commit 38bc1ab

Browse files
Mikulas PatockaMike Snitzer
authored andcommitted
dm-verity: align struct dm_verity_fec_io properly
dm_verity_fec_io is placed after the end of two hash digests. If the hash digest has unaligned length, struct dm_verity_fec_io could be unaligned. This commit fixes the placement of struct dm_verity_fec_io, so that it's aligned. Signed-off-by: Mikulas Patocka <[email protected]> Cc: [email protected] Fixes: a739ff3 ("dm verity: add support for forward error correction") Signed-off-by: Mike Snitzer <[email protected]>
1 parent 0193e39 commit 38bc1ab

File tree

2 files changed

+2
-7
lines changed

2 files changed

+2
-7
lines changed

drivers/md/dm-verity-fec.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ bool verity_fec_is_enabled(struct dm_verity *v)
2424
*/
2525
static inline struct dm_verity_fec_io *fec_io(struct dm_verity_io *io)
2626
{
27-
return (struct dm_verity_fec_io *) verity_io_digest_end(io->v, io);
27+
return (struct dm_verity_fec_io *)
28+
((char *)io + io->v->ti->per_io_data_size - sizeof(struct dm_verity_fec_io));
2829
}
2930

3031
/*

drivers/md/dm-verity.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,6 @@ static inline u8 *verity_io_want_digest(struct dm_verity *v,
115115
return (u8 *)(io + 1) + v->ahash_reqsize + v->digest_size;
116116
}
117117

118-
static inline u8 *verity_io_digest_end(struct dm_verity *v,
119-
struct dm_verity_io *io)
120-
{
121-
return verity_io_want_digest(v, io) + v->digest_size;
122-
}
123-
124118
extern int verity_for_bv_block(struct dm_verity *v, struct dm_verity_io *io,
125119
struct bvec_iter *iter,
126120
int (*process)(struct dm_verity *v,

0 commit comments

Comments
 (0)