summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo A. R. Silva <gustavoars@kernel.org>2020-06-20 03:49:49 +0300
committerJens Axboe <axboe@kernel.dk>2020-06-24 18:15:58 +0300
commit1f4fe21cf45c799a2fef41ae23dd2a8a8dbb93b7 (patch)
treeb76203bdf8e91805a2515cf1ccbca8e63c57d965
parent85e0cbbb8a79537dbc465e9deb449a08b2b092a6 (diff)
downloadlinux-1f4fe21cf45c799a2fef41ae23dd2a8a8dbb93b7.tar.xz
block: bio: Use struct_size() in kmalloc()
Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. This code was detected with the help of Coccinelle and, audited and fixed manually. Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83 Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/bio.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/block/bio.c b/block/bio.c
index a7366c02c9b5..fb5533416fa6 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -444,9 +444,7 @@ struct bio *bio_alloc_bioset(gfp_t gfp_mask, unsigned int nr_iovecs,
if (nr_iovecs > UIO_MAXIOV)
return NULL;
- p = kmalloc(sizeof(struct bio) +
- nr_iovecs * sizeof(struct bio_vec),
- gfp_mask);
+ p = kmalloc(struct_size(bio, bi_inline_vecs, nr_iovecs), gfp_mask);
front_pad = 0;
inline_vecs = nr_iovecs;
} else {