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);
 

Reply via email to