diff options
| author | ZYH <[email protected]> | 2018-01-17 21:12:21 +0800 |
|---|---|---|
| committer | ZYH <[email protected]> | 2018-01-17 21:12:21 +0800 |
| commit | a9f182140cb274a91bcadd28c333e7301a60eb5c (patch) | |
| tree | 8cfb500acf3ae66cf58b545ae2919a9285c799d2 /components/drivers | |
| parent | 627a90c2d06397291f1ffbe0b230f2c48cdc1e9e (diff) | |
[Components][Drivers][USB]fix memory leak
修复一个 bug 该bug曾导致在设备不断电但主机重新枚举设备的情况下会导致内存泄漏并无法接收数据
Diffstat (limited to 'components/drivers')
| -rw-r--r-- | components/drivers/usb/usbdevice/class/hid.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/components/drivers/usb/usbdevice/class/hid.c b/components/drivers/usb/usbdevice/class/hid.c index 11a8e39bfe..0b44456b8f 100644 --- a/components/drivers/usb/usbdevice/class/hid.c +++ b/components/drivers/usb/usbdevice/class/hid.c @@ -486,7 +486,10 @@ static rt_err_t _function_enable(ufunction_t func) // // _vcom_reset_state(func); // - data->ep_out->buffer = rt_malloc(HID_RX_BUFSIZE); + if(data->ep_out->buffer == RT_NULL) + { + data->ep_out->buffer = rt_malloc(HID_RX_BUFSIZE); + } data->ep_out->request.buffer = data->ep_out->buffer; data->ep_out->request.size = EP_MAXPACKET(data->ep_out); data->ep_out->request.req_type = UIO_REQUEST_READ_BEST; |
