scsi: scsi_debug: Fix buffer size of REPORT ZONES command
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Tue, 7 Dec 2021 01:06:38 +0000 (10:06 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Dec 2021 10:32:40 +0000 (11:32 +0100)
commitc4d2d7c935a4ad20e8e726ca10499cefe4537103
treea96be6372cb3a92222fdc7dd26f0e9fed30501a8
parent1e434d2687e8bc0b3cdc9dd093c0e9047c0b4add
scsi: scsi_debug: Fix buffer size of REPORT ZONES command

commit 7db0e0c8190a086ef92ce5bb960836cde49540aa upstream.

According to ZBC and SPC specifications, the unit of ALLOCATION LENGTH
field of REPORT ZONES command is byte. However, current scsi_debug
implementation handles it as number of zones to calculate buffer size to
report zones. When the ALLOCATION LENGTH has a large number, this results
in too large buffer size and causes memory allocation failure.  Fix the
failure by handling ALLOCATION LENGTH as byte unit.

Link: https://lore.kernel.org/r/20211207010638.124280-1-shinichiro.kawasaki@wdc.com
Fixes: f0d1cf9378bd ("scsi: scsi_debug: Add ZBC zone commands")
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/scsi_debug.c