From: Dan Carpenter Date: Fri, 13 Mar 2015 09:11:42 +0000 (+0300) Subject: usb: gadget: printer: use after free in gprinter_alloc_inst() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2bb2077ee607703771c35ed74837180760f9ce07;p=openwrt%2Fstaging%2Fblogic.git usb: gadget: printer: use after free in gprinter_alloc_inst() There was a missing goto so we free "opts" and then dereference it. Fixes: ee1cd515e889 ('usb: gadget: printer: add configfs support') Signed-off-by: Dan Carpenter Signed-off-by: Felipe Balbi --- diff --git a/drivers/usb/gadget/function/f_printer.c b/drivers/usb/gadget/function/f_printer.c index caa56de3a3e8..48882ecf1610 100644 --- a/drivers/usb/gadget/function/f_printer.c +++ b/drivers/usb/gadget/function/f_printer.c @@ -1307,6 +1307,7 @@ static struct usb_function_instance *gprinter_alloc_inst(void) kfree(opts); if (idr_is_empty(&printer_ida.idr)) gprinter_cleanup(); + goto unlock; } config_group_init_type_name(&opts->func_inst.group, "", &printer_func_type);