Selaa lähdekoodia

usb: dwc3: use proper function for setting endpoint name

It's wrong to use the size of array as an argument for strncat.
Memory corruption is possible. strlcat is exactly what we need here.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Tikhomirov <av.tikhomirov@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Anton Tikhomirov 14 vuotta sitten
vanhempi
commit
27a78d6a28
1 muutettua tiedostoa jossa 4 lisäystä ja 4 poistoa
  1. 4 4
      drivers/usb/dwc3/gadget.c

+ 4 - 4
drivers/usb/dwc3/gadget.c

@@ -643,16 +643,16 @@ static int dwc3_gadget_ep_enable(struct usb_ep *ep,
 
 
 	switch (usb_endpoint_type(desc)) {
 	switch (usb_endpoint_type(desc)) {
 	case USB_ENDPOINT_XFER_CONTROL:
 	case USB_ENDPOINT_XFER_CONTROL:
-		strncat(dep->name, "-control", sizeof(dep->name));
+		strlcat(dep->name, "-control", sizeof(dep->name));
 		break;
 		break;
 	case USB_ENDPOINT_XFER_ISOC:
 	case USB_ENDPOINT_XFER_ISOC:
-		strncat(dep->name, "-isoc", sizeof(dep->name));
+		strlcat(dep->name, "-isoc", sizeof(dep->name));
 		break;
 		break;
 	case USB_ENDPOINT_XFER_BULK:
 	case USB_ENDPOINT_XFER_BULK:
-		strncat(dep->name, "-bulk", sizeof(dep->name));
+		strlcat(dep->name, "-bulk", sizeof(dep->name));
 		break;
 		break;
 	case USB_ENDPOINT_XFER_INT:
 	case USB_ENDPOINT_XFER_INT:
-		strncat(dep->name, "-int", sizeof(dep->name));
+		strlcat(dep->name, "-int", sizeof(dep->name));
 		break;
 		break;
 	default:
 	default:
 		dev_err(dwc->dev, "invalid endpoint transfer type\n");
 		dev_err(dwc->dev, "invalid endpoint transfer type\n");