Hi Mauro On Fri, 3 Sept 2021 at 12:11, Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> wrote: > > Em Fri, 18 Jun 2021 14:29:15 +0200 > Ricardo Ribalda <ribalda@xxxxxxxxxxxx> escreveu: > > > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c > > index 9cdd30eff495..28ccaa8b9e42 100644 > > --- a/drivers/media/usb/uvc/uvc_v4l2.c > > +++ b/drivers/media/usb/uvc/uvc_v4l2.c > > @@ -40,7 +40,13 @@ static int uvc_ioctl_ctrl_map(struct uvc_video_chain *chain, > > return -ENOMEM; > > > > map->id = xmap->id; > > - memcpy(map->name, xmap->name, sizeof(map->name)); > > + /* Non standard control id. */ > > + if (v4l2_ctrl_get_name(map->id) == NULL) { > > + map->name = kmemdup(xmap->name, sizeof(xmap->name), > > + GFP_KERNEL); > > Where are you de-allocating it at driver removal/unbind? It is also in this patch: @@ -2462,6 +2448,7 @@ static void uvc_ctrl_cleanup_mappings(struct uvc_device *dev, list_for_each_entry_safe(mapping, nm, &ctrl->info.mappings, list) { list_del(&mapping->list); kfree(mapping->menu_info); + kfree(mapping->name); kfree(mapping); } } If there is a standard name mapping->name will be NULL, but kfree checks for that. Thanks > > > Thanks, > Mauro -- Ricardo Ribalda