From a9f182140cb274a91bcadd28c333e7301a60eb5c Mon Sep 17 00:00:00 2001 From: ZYH Date: Wed, 17 Jan 2018 21:12:21 +0800 Subject: [PATCH] [Components][Drivers][USB]fix memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复一个 bug 该bug曾导致在设备不断电但主机重新枚举设备的情况下会导致内存泄漏并无法接收数据 --- components/drivers/usb/usbdevice/class/hid.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; -- GitLab