hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/media/radio/radio-shark2.c
....@@ -282,6 +282,16 @@
282282 {
283283 struct shark_device *shark;
284284 int retval = -ENOMEM;
285
+ static const u8 ep_addresses[] = {
286
+ SHARK_IN_EP | USB_DIR_IN,
287
+ SHARK_OUT_EP | USB_DIR_OUT,
288
+ 0};
289
+
290
+ /* Are the expected endpoints present? */
291
+ if (!usb_check_int_endpoints(intf, ep_addresses)) {
292
+ dev_err(&intf->dev, "Invalid radioSHARK2 device\n");
293
+ return -EINVAL;
294
+ }
285295
286296 shark = kzalloc(sizeof(struct shark_device), GFP_KERNEL);
287297 if (!shark)
....@@ -310,7 +320,7 @@
310320 shark->tea.ops = &shark_tea_ops;
311321 shark->tea.has_am = true;
312322 shark->tea.write_before_read = true;
313
- strlcpy(shark->tea.card, "Griffin radioSHARK2",
323
+ strscpy(shark->tea.card, "Griffin radioSHARK2",
314324 sizeof(shark->tea.card));
315325 usb_make_path(shark->usbdev, shark->tea.bus_info,
316326 sizeof(shark->tea.bus_info));