dm-verity: align struct dm_verity_fec_io properly
commit 38bc1ab135db87577695816b190e7d6d8ec75879 upstream.
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 <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Fixes: a739ff3f54 ("dm verity: add support for forward error correction")
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2636657e41
commit
ffe2d3da49
@@ -28,7 +28,8 @@ bool verity_fec_is_enabled(struct dm_verity *v)
|
|||||||
*/
|
*/
|
||||||
static inline struct dm_verity_fec_io *fec_io(struct dm_verity_io *io)
|
static inline struct dm_verity_fec_io *fec_io(struct dm_verity_io *io)
|
||||||
{
|
{
|
||||||
return (struct dm_verity_fec_io *) verity_io_digest_end(io->v, io);
|
return (struct dm_verity_fec_io *)
|
||||||
|
((char *)io + io->v->ti->per_io_data_size - sizeof(struct dm_verity_fec_io));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -109,12 +109,6 @@ static inline u8 *verity_io_want_digest(struct dm_verity *v,
|
|||||||
return (u8 *)(io + 1) + v->ahash_reqsize + v->digest_size;
|
return (u8 *)(io + 1) + v->ahash_reqsize + v->digest_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u8 *verity_io_digest_end(struct dm_verity *v,
|
|
||||||
struct dm_verity_io *io)
|
|
||||||
{
|
|
||||||
return verity_io_want_digest(v, io) + v->digest_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int verity_for_bv_block(struct dm_verity *v, struct dm_verity_io *io,
|
extern int verity_for_bv_block(struct dm_verity *v, struct dm_verity_io *io,
|
||||||
struct bvec_iter *iter,
|
struct bvec_iter *iter,
|
||||||
int (*process)(struct dm_verity *v,
|
int (*process)(struct dm_verity *v,
|
||||||
|
|||||||
Reference in New Issue
Block a user