summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorDavid Lin <[email protected]>2020-06-10 12:53:51 +0800
committerGitHub <[email protected]>2020-06-10 12:53:51 +0800
commit1703c70fd5df3fd45a2dfe302147140b15b4574a (patch)
tree700360102ac8c4d48f79ea6d1ef3a48a5f1eb7cc /components/drivers
parentce833715042dfae615f3bc5ca22b8d294b7cade0 (diff)
[ drivers/usb]Fixed a bug may cause stackover flow
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/usb/usbhost/core/usbhost_core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/drivers/usb/usbhost/core/usbhost_core.c b/components/drivers/usb/usbhost/core/usbhost_core.c
index 71341a33c3..d72dca82f2 100644
--- a/components/drivers/usb/usbhost/core/usbhost_core.c
+++ b/components/drivers/usb/usbhost/core/usbhost_core.c
@@ -162,6 +162,10 @@ rt_err_t rt_usbh_attatch_instance(uinst_t device)
/* alloc memory for configuration descriptor */
device->cfg_desc = (ucfg_desc_t)rt_malloc(cfg_desc.wTotalLength);
+ if(device->cfg_desc == RT_NULL)
+ {
+ return RT_ENOMEM;
+ }
rt_memset(device->cfg_desc, 0, cfg_desc.wTotalLength);
/* get full configuration descriptor */
@@ -219,6 +223,10 @@ rt_err_t rt_usbh_attatch_instance(uinst_t device)
{
/* allocate memory for interface device */
device->intf[i] = (struct uhintf*)rt_malloc(sizeof(struct uhintf));
+ if(device->intf[i] == RT_NULL)
+ {
+ return RT_ENOMEM;
+ }
device->intf[i]->drv = drv;
device->intf[i]->device = device;
device->intf[i]->intf_desc = intf_desc;