summaryrefslogtreecommitdiffstats
path: root/drivers/nvme/target
diff options
context:
space:
mode:
authorJames Smart2017-09-20 01:33:56 +0200
committerJens Axboe2017-09-25 20:42:11 +0200
commit0c319d3a144d4b8f1ea2047fd614d2149b68f889 (patch)
treec5c1a848aad36b300c74be53c21190b3c6694b3b /drivers/nvme/target
parentnvmet-fc: on port remove call put outside lock (diff)
downloadkernel-qcow2-linux-0c319d3a144d4b8f1ea2047fd614d2149b68f889.tar.gz
kernel-qcow2-linux-0c319d3a144d4b8f1ea2047fd614d2149b68f889.tar.xz
kernel-qcow2-linux-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/target')
-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) {