linux/block
Damien Le Moal 113ab72ed4 block: Fix potential overflow in blk_report_zones()
For large values of the number of zones reported and/or large zone
sizes, the sector increment calculated with

blk_queue_zone_sectors(q) * n

in blk_report_zones() loop can overflow the unsigned int type used for
the calculation as both "n" and blk_queue_zone_sectors() value are
unsigned int. E.g. for a device with 256 MB zones (524288 sectors),
overflow happens with 8192 or more zones reported.

Changing the return type of blk_queue_zone_sectors() to sector_t, fixes
this problem and avoids overflow problem for all other callers of this
helper too. The same change is also applied to the bdev_zone_sectors()
helper.

Fixes: e76239a374 ("block: add a report_zones method")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-07-10 09:00:57 -06:00
..
partitions block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header 2019-05-31 15:12:34 -06:00
badblocks.c block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
bfq-cgroup.c block: rename CONFIG_DEBUG_BLK_CGROUP to CONFIG_BFQ_CGROUP_DEBUG 2019-06-20 10:32:35 -06:00
bfq-iosched.c for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
bfq-iosched.h block, bfq: detect wakers and unconditionally inject their I/O 2019-06-25 09:07:34 -06:00
bfq-wf2q.c block: switch all files cleared marked as GPLv2 or later to SPDX tags 2019-04-30 16:11:59 -06:00
bio-integrity.c block/bio-integrity: use struct_size() in kmalloc() 2019-05-16 08:48:48 -06:00
bio.c block: fix .bi_size overflow 2019-07-01 08:18:54 -06:00
blk-cgroup.c blkcg: implement REQ_CGROUP_PUNT 2019-07-10 09:00:57 -06:00
blk-core.c blkcg: implement REQ_CGROUP_PUNT 2019-07-10 09:00:57 -06:00
blk-exec.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
blk-flush.c block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
blk-integrity.c for-5.2/block-20190507 2019-05-07 18:14:36 -07:00
blk-ioc.c block: remove the queue_lock indirection 2018-11-15 12:17:28 -07:00
blk-iolatency.c blk-iolatency: fix STS_AGAIN handling 2019-07-05 15:14:00 -06:00
blk-lib.c block: fix 32 bit overflow in __blkdev_issue_discard() 2018-11-14 08:17:18 -07:00
blk-map.c block: remove the bi_phys_segments field in struct bio 2019-06-20 10:29:22 -06:00
blk-merge.c block: nr_phys_segments needs to be zero for REQ_OP_WRITE_ZEROES 2019-07-03 07:20:40 -06:00
blk-mq-cpumap.c blk-mq: Document the blk_mq_hw_queue_to_node() arguments 2019-05-31 15:12:34 -06:00
blk-mq-debugfs-zoned.c block: Cleanup license notice 2019-01-17 21:21:40 -07:00
blk-mq-debugfs.c for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
blk-mq-debugfs.h blk-mq: no need to check return value of debugfs_create functions 2019-06-13 03:00:30 -06:00
blk-mq-pci.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq-rdma.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq-sched.c blk-mq: remove blk_mq_put_ctx() 2019-07-02 21:03:27 -06:00
blk-mq-sched.h block: remove the bi_phys_segments field in struct bio 2019-06-20 10:29:22 -06:00
blk-mq-sysfs.c for-5.2/block-20190507 2019-05-07 18:14:36 -07:00
blk-mq-tag.c blk-mq: remove blk_mq_put_ctx() 2019-07-02 21:03:27 -06:00
blk-mq-tag.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
blk-mq-virtio.c block: Fix blk_mq_*_map_queues() kernel-doc headers 2019-05-31 15:12:34 -06:00
blk-mq.c blk-mq: simplify blk_mq_make_request() 2019-07-02 21:03:38 -06:00
blk-mq.h blk-mq: remove blk_mq_put_ctx() 2019-07-02 21:03:27 -06:00
blk-pm.c block: remove the queue_lock indirection 2018-11-15 12:17:28 -07:00
blk-pm.h block: remove the queue_lock indirection 2018-11-15 12:17:28 -07:00
blk-rq-qos.c block: Fix rq_qos_wait() kernel-doc header 2019-05-31 15:12:34 -06:00
blk-rq-qos.h block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
blk-settings.c block: force an unlimited segment size on queues with a virt boundary 2019-05-23 10:25:26 -06:00
blk-softirq.c block: remove a few unused exports 2018-11-15 12:13:25 -07:00
blk-stat.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
blk-stat.h block: deactivate blk_stat timer in wbt_disable_default() 2018-12-12 06:47:51 -07:00
blk-sysfs.c block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
blk-throttle.c block: Fix throtl_pending_timer_fn() kernel-doc header 2019-05-31 15:12:34 -06:00
blk-timeout.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
blk-wbt.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
blk-wbt.h block: remove external dependency on wbt_flags 2018-07-09 09:07:54 -06:00
blk-zoned.c block: Fix potential overflow in blk_report_zones() 2019-07-10 09:00:57 -06:00
blk.h block: mark blk_rq_bio_prep as inline 2019-06-20 10:29:22 -06:00
bounce.c block: remove the i argument to bio_for_each_segment_all 2019-04-30 09:26:13 -06:00
bsg-lib.c block: Fix bsg_setup_queue() kernel-doc header 2019-05-31 15:12:34 -06:00
bsg.c block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
cmdline-parser.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
compat_ioctl.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
elevator.c block: free sched's request pool in blk_cleanup_queue 2019-06-06 22:39:39 -06:00
genhd.c block: genhd: Use struct_size() helper 2019-06-15 01:46:09 -06:00
ioctl.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
ioprio.c block: add SPDX tags to block layer files missing licensing information 2019-04-30 16:12:03 -06:00
Kconfig Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2019-07-08 21:35:12 -07:00
Kconfig.iosched block: rename CONFIG_DEBUG_BLK_CGROUP to CONFIG_BFQ_CGROUP_DEBUG 2019-06-20 10:32:35 -06:00
kyber-iosched.c blk-mq: remove blk_mq_put_ctx() 2019-07-02 21:03:27 -06:00
Makefile block: remove legacy IO schedulers 2018-11-07 13:42:32 -07:00
mq-deadline.c block: remove the bi_phys_segments field in struct bio 2019-06-20 10:29:22 -06:00
opal_proto.h block: sed-opal: check size of shadow mbr 2019-06-29 10:34:08 -06:00
partition-generic.c block: fix use-after-free on gendisk 2019-04-22 09:48:12 -06:00
scsi_ioctl.c block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
sed-opal.c block: sed-opal: check size of shadow mbr 2019-06-29 10:34:08 -06:00
t10-pi.c block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00