From d3df564486d7c935bdcf01723b4e04a5af28e1c7 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Tue, 5 Aug 2014 18:18:46 +0200 Subject: hwstub: fix horrible bug Change-Id: I8042f692045a23dbb545d840e5169ce4b99fe5d2 --- utils/hwstub/stub/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'utils') diff --git a/utils/hwstub/stub/main.c b/utils/hwstub/stub/main.c index a8d99fc863..e31c5d1b8b 100644 --- a/utils/hwstub/stub/main.c +++ b/utils/hwstub/stub/main.c @@ -376,7 +376,6 @@ static void handle_read(struct usb_ctrlrequest *req) { if(id != last_id) return usb_drv_stall(EP_CONTROL, true, true); - memcpy((void *)last_addr, usb_buffer, req->wLength); memcpy(usb_buffer, (void *)last_addr, req->wLength); asm volatile("nop" : : : "memory"); usb_drv_send(EP_CONTROL, usb_buffer, req->wLength); @@ -392,7 +391,7 @@ static void handle_write(struct usb_ctrlrequest *req) int sz_hdr = sizeof(struct hwstub_write_req_t); if(size < sz_hdr) return usb_drv_stall(EP_CONTROL, true, true); - memcpy((void *)write->dAddress, usb_buffer + sz_hdr, req->wLength - sz_hdr); + memcpy((void *)write->dAddress, usb_buffer + sz_hdr, size - sz_hdr); usb_drv_send(EP_CONTROL, NULL, 0); } -- cgit v1.2.3