kmalloc_array manages count*sizeof overflow. This patch also fixes checkpatch warnings: ERROR: "(foo*)" should be "(foo *)"
Cc: Andrew Morton <a...@linux-foundation.org> Cc: Jan Kara <j...@suse.cz> Signed-off-by: Fabian Frederick <f...@skynet.be> --- fs/jbd/journal.c | 6 ++++-- fs/jbd/revoke.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c index 06fe11e..26ebba7 100644 --- a/fs/jbd/journal.c +++ b/fs/jbd/journal.c @@ -810,7 +810,8 @@ journal_t * journal_init_dev(struct block_device *bdev, journal->j_blocksize = blocksize; n = journal->j_blocksize / sizeof(journal_block_tag_t); journal->j_wbufsize = n; - journal->j_wbuf = kmalloc(n * sizeof(struct buffer_head*), GFP_KERNEL); + journal->j_wbuf = kmalloc_array(n, sizeof(struct buffer_head *), + GFP_KERNEL); if (!journal->j_wbuf) { printk(KERN_ERR "%s: Can't allocate bhs for commit thread\n", __func__); @@ -871,7 +872,8 @@ journal_t * journal_init_inode (struct inode *inode) /* journal descriptor can store up to n blocks -bzzz */ n = journal->j_blocksize / sizeof(journal_block_tag_t); journal->j_wbufsize = n; - journal->j_wbuf = kmalloc(n * sizeof(struct buffer_head*), GFP_KERNEL); + journal->j_wbuf = kmalloc_array(n, sizeof(struct buffer_head *), + GFP_KERNEL); if (!journal->j_wbuf) { printk(KERN_ERR "%s: Can't allocate bhs for commit thread\n", __func__); diff --git a/fs/jbd/revoke.c b/fs/jbd/revoke.c index 8898bbd..7374a57 100644 --- a/fs/jbd/revoke.c +++ b/fs/jbd/revoke.c @@ -241,7 +241,7 @@ static struct jbd_revoke_table_s *journal_init_revoke_table(int hash_size) table->hash_size = hash_size; table->hash_shift = ilog2(hash_size); table->hash_table = - kmalloc(hash_size * sizeof(struct list_head), GFP_KERNEL); + kmalloc_array(hash_size, sizeof(struct list_head), GFP_KERNEL); if (!table->hash_table) { kmem_cache_free(revoke_table_cache, table); table = NULL; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/