[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 11/17] hw/block/nvme: harden cmb access
From: |
Klaus Jensen |
Subject: |
[PATCH 11/17] hw/block/nvme: harden cmb access |
Date: |
Fri, 4 Sep 2020 16:19:50 +0200 |
From: Klaus Jensen <k.jensen@samsung.com>
Since the controller has only supported PRPs so far it has not been
required to check the ending address (addr + len - 1) of the CMB access
for validity since it has been guaranteed to be in range of the CMB.
This changes when the controller adds support for SGLs (next patch), so
add that check.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/block/nvme.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 36ec8cbb1168..6ef4dc762b80 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -143,7 +143,12 @@ static inline void *nvme_addr_to_cmb(NvmeCtrl *n, hwaddr
addr)
static int nvme_addr_read(NvmeCtrl *n, hwaddr addr, void *buf, int size)
{
- if (n->bar.cmbsz && nvme_addr_is_cmb(n, addr)) {
+ hwaddr hi = addr + size - 1;
+ if (hi < addr) {
+ return 1;
+ }
+
+ if (n->bar.cmbsz && nvme_addr_is_cmb(n, addr) && nvme_addr_is_cmb(n, hi)) {
memcpy(buf, nvme_addr_to_cmb(n, addr), size);
return 0;
}
--
2.28.0
- Re: [PATCH 08/17] hw/block/nvme: refactor aio submission, (continued)
[PATCH 06/17] hw/block/nvme: fix endian conversion, Klaus Jensen, 2020/09/04
[PATCH 10/17] hw/block/nvme: support multiple parallel aios per request, Klaus Jensen, 2020/09/04
[PATCH 07/17] hw/block/nvme: add symbolic command name to trace events, Klaus Jensen, 2020/09/04
[PATCH 09/17] hw/block/nvme: default request status to success, Klaus Jensen, 2020/09/04
[PATCH 11/17] hw/block/nvme: harden cmb access,
Klaus Jensen <=
[PATCH 13/17] hw/block/nvme: add support for sgl bit bucket descriptor, Klaus Jensen, 2020/09/04
[PATCH 16/17] pci: allocate pci id for nvme, Klaus Jensen, 2020/09/04
[PATCH 17/17] hw/block/nvme: change controller pci id, Klaus Jensen, 2020/09/04
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Philippe Mathieu-Daudé, 2020/09/06
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Klaus Jensen, 2020/09/07
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Philippe Mathieu-Daudé, 2020/09/07
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Klaus Jensen, 2020/09/07
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Klaus Jensen, 2020/09/07
- Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Philippe Mathieu-Daudé, 2020/09/07
Re: [PATCH 17/17] hw/block/nvme: change controller pci id, Dr. David Alan Gilbert, 2020/09/07