block: fix SG_[GS]ET_RESERVED_SIZE ioctl when max_sectors is huge
authorAkinobu Mita <akinobu.mita@gmail.com>
Sun, 25 May 2014 12:43:34 +0000 (21:43 +0900)
committerJens Axboe <axboe@fb.com>
Tue, 1 Jul 2014 16:43:09 +0000 (10:43 -0600)
commit9b4231bf995996d6459c57959ead5a1829ff2c57
treef9c44bc06c67b67448950624da3ea80b5d4b3bd2
parent63f264965947ac6299452711f614f086955b2515
block: fix SG_[GS]ET_RESERVED_SIZE ioctl when max_sectors is huge

SG_GET_RESERVED_SIZE and SG_SET_RESERVED_SIZE ioctls access a reserved
buffer in bytes as int type.  The value needs to be capped at the request
queue's max_sectors.  But integer overflow is not correctly handled in
the calculation when converting max_sectors from sectors to bytes.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
Cc: Douglas Gilbert <dgilbert@interlog.com>
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/scsi_ioctl.c