This is an automated email from the ASF dual-hosted git repository. btashton pushed a commit to branch pci in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 24e2636592f49cdea6ebc195bf330d948275d083 Author: Yang Chung-Fan <sonic.tw...@gmail.com> AuthorDate: Wed May 6 20:09:07 2020 +0900 pcie: qemu: return -EINVAL if buffer argument is NULL --- boards/x86_64/intel64/qemu-intel64/src/qemu_pcie.c | 6 ++++++ boards/x86_64/intel64/qemu-intel64/src/qemu_pcie_readwrite.h | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie.c b/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie.c index 1308e22..5670fdd 100644 --- a/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie.c +++ b/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie.c @@ -221,6 +221,9 @@ static int qemu_pci_enumerate(FAR struct pcie_bus_s *bus, static int qemu_pci_cfg_write(FAR struct pcie_dev_s *dev, uintptr_t addr, FAR const void *buffer, unsigned int size) { + if(!buffer) + return -EINVAL; + switch (size) { case 1: @@ -254,6 +257,9 @@ static int qemu_pci_cfg_write(FAR struct pcie_dev_s *dev, uintptr_t addr, static int qemu_pci_cfg_read(FAR struct pcie_dev_s *dev, uintptr_t addr, FAR void *buffer, unsigned int size) { + if(!buffer) + return -EINVAL; + switch (size) { case 1: diff --git a/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie_readwrite.h b/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie_readwrite.h index 2e0c392..0665d83 100644 --- a/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie_readwrite.h +++ b/boards/x86_64/intel64/qemu-intel64/src/qemu_pcie_readwrite.h @@ -107,6 +107,9 @@ static inline int __qemu_pci_cfg_write(uint16_t bfd, uintptr_t addr, FAR const void *buffer, unsigned int size) { + if(!buffer) + return -EINVAL; + outl(PCI_CONE | ((uint32_t)bfd << 8) | (addr & 0xfc), PCI_REG_ADDR_PORT); switch (size) @@ -149,6 +152,9 @@ static inline int __qemu_pci_cfg_write64(uint16_t bfd, uintptr_t addr, { int ret; + if(!buffer) + return -EINVAL; + ret = __qemu_pci_cfg_write(bfd, addr + 4, buffer + 4, 4); ret |= __qemu_pci_cfg_write(bfd, addr, buffer, 4); @@ -175,6 +181,9 @@ static inline int __qemu_pci_cfg_write64(uint16_t bfd, uintptr_t addr, static inline int __qemu_pci_cfg_read(uint16_t bfd, uintptr_t addr, FAR void *buffer, unsigned int size) { + if(!buffer) + return -EINVAL; + outl(PCI_CONE | ((uint32_t)bfd << 8) | (addr & 0xfc), PCI_REG_ADDR_PORT); switch (size) @@ -219,6 +228,9 @@ static inline int __qemu_pci_cfg_read64(uint16_t bfd, { int ret; + if(!buffer) + return -EINVAL; + ret = __qemu_pci_cfg_read(bfd, addr + 4, buffer + 4, 4); ret |= __qemu_pci_cfg_read(bfd, addr, buffer, 4);