Himangi Saraogi
2013-Nov-01 00:46 UTC
[PATCH] btrfs:check-integrity.c: replace kmalloc with kmalloc_array
This patch replaces kmalloc(size * nr, ) with kmalloc_array(nr, size) as kmalloc_array() is preferred because it can check that the calculation doesn''t wrap and won''t return a smaller allocation. Reviewed-by: Zach Brown <zab@redhat.com> Signed-off-by: Himangi Saraogi <himangi774@gmail.com> --- fs/btrfs/check-integrity.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c index 1c47be1..d61ffef 100644 --- a/fs/btrfs/check-integrity.c +++ b/fs/btrfs/check-integrity.c @@ -3031,8 +3031,9 @@ void btrfsic_submit_bio(int rw, struct bio *bio) (unsigned long long)bio->bi_sector, dev_bytenr, bio->bi_bdev); - mapped_datav = kmalloc(sizeof(*mapped_datav) * bio->bi_vcnt, - GFP_NOFS); + mapped_datav = kmalloc_array(bio->bi_vcnt, + sizeof(*mapped_datav), + GFP_NOFS); if (!mapped_datav) goto leave; for (i = 0; i < bio->bi_vcnt; i++) { -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
David Sterba
2013-Nov-06 17:37 UTC
Re: [PATCH] btrfs:check-integrity.c: replace kmalloc with kmalloc_array
On Fri, Nov 01, 2013 at 06:16:00AM +0530, Himangi Saraogi wrote:> This patch replaces kmalloc(size * nr, ) with kmalloc_array(nr, size) > as kmalloc_array() is preferred because it can check that the > calculation doesn''t wrap and won''t return a smaller allocation.Can you please convert all the instances in one patch? Feel free to use the following cocinelle script, that found ~16 places that could use the conversion. $ cat kmalloc_array.cocci @ @ expression E1, E2, E3; @@ * \(kmalloc\|kzalloc\)(E1 * E2, E3) --- The output is not a straight patch, the instances have to be reviewed manually because the order of nritems and size may differ at each location. david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html