• Hongbo Yao's avatar
    nvme-pci: fix out of bounds access in nvme_cqe_pending · dcca1662
    Hongbo Yao authored
    There is an out of bounds array access in nvme_cqe_peding().
    
    When enable irq_thread for nvme interrupt, there is racing between the
    nvmeq->cq_head updating and reading.
    
    nvmeq->cq_head is updated in nvme_update_cq_head(), if nvmeq->cq_head
    equals nvmeq->q_depth and before its value set to zero, nvme_cqe_pending()
    uses its value as an array index, the index will be out of bounds.
    Signed-off-by: default avatarHongbo Yao <yaohongbo@huawei.com>
    [hch: slight coding style update]
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    dcca1662
pci.c 76.7 KB