From: Dan Carpenter Date: Wed, 20 Jun 2018 10:45:05 +0000 (+0300) Subject: blk-mq-debugfs: Off by one in blk_mq_rq_state_name() X-Git-Tag: v4.17.19~250 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e95d2eac6d45fd148f06f8dc4da257fe866f018;p=thirdparty%2Fkernel%2Fstable.git blk-mq-debugfs: Off by one in blk_mq_rq_state_name() [ Upstream commit a1e79188628580465ac6d7a93a313336ee3364f1 ] If rq_state == ARRAY_SIZE() then we read one element beyond the end of the blk_mq_rq_state_name_array[] array. Fixes: ec6dcf63c55c ("blk-mq-debugfs: Show more request state information") Reviewed-by: Bart Van Assche Signed-off-by: Dan Carpenter Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c index 3080e18cb8590..62b5f3f21b4b8 100644 --- a/block/blk-mq-debugfs.c +++ b/block/blk-mq-debugfs.c @@ -357,7 +357,7 @@ static const char *const blk_mq_rq_state_name_array[] = { static const char *blk_mq_rq_state_name(enum mq_rq_state rq_state) { - if (WARN_ON_ONCE((unsigned int)rq_state > + if (WARN_ON_ONCE((unsigned int)rq_state >= ARRAY_SIZE(blk_mq_rq_state_name_array))) return "(?)"; return blk_mq_rq_state_name_array[rq_state];