aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nvme
diff options
context:
space:
mode:
authorJames Smart <jsmart2021@gmail.com>2017-09-19 16:33:56 -0700
committerJens Axboe <axboe@kernel.dk>2017-09-25 12:42:11 -0600
commit0c319d3a144d4b8f1ea2047fd614d2149b68f889 (patch)
treec5c1a848aad36b300c74be53c21190b3c6694b3b /drivers/nvme
parentnvmet-fc: on port remove call put outside lock (diff)
downloadlinux-dev-0c319d3a144d4b8f1ea2047fd614d2149b68f889.tar.xz
linux-dev-0c319d3a144d4b8f1ea2047fd614d2149b68f889.zip
nvmet-fc: ensure target queue id within range.
When searching for queue id's ensure they are within the expected range. Signed-off-by: James Smart <james.smart@broadcom.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/nvme')
-rw-r--r--drivers/nvme/target/fc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index 6850672ad2a2..58e010bdda3e 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -783,6 +783,9 @@ nvmet_fc_find_target_queue(struct nvmet_fc_tgtport *tgtport,
u16 qid = nvmet_fc_getqueueid(connection_id);
unsigned long flags;
+ if (qid > NVMET_NR_QUEUES)
+ return NULL;
+
spin_lock_irqsave(&tgtport->lock, flags);
list_for_each_entry(assoc, &tgtport->assoc_list, a_list) {
if (association_id == assoc->association_id) {