[android-common:android16-6.12 5/5] drivers/usb/gadget/configfs.c:2050 gadgets_make() error: double free of 'gi->composite.gadget_driver.driver.name' (line 2048)
Dan Carpenter <[email protected]> Tue, 28 Jul 2026 13:08:34 +0300
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <20260728100834.JEajpwF6NIJaEAt0-XeYBoI4a48q6GQNH1BC8Y-p6WA@z> |
tree: https://android.googlesource.com/kernel/common android16-6.12 head: 579215f16d4e5c3062e423a583897e83473e1435 commit: 957b40b3b769bc23db3d6491db267e3166f91316 [5/5] ANDROID: usb: gadget: configfs: Add Uevent to notify userspace config: i386-randconfig-141 (https://download.01.org/0day-ci/archive/20260728/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 smatch: v0.5.0-9187-g5189e3fb If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: drivers/usb/gadget/configfs.c:2050 gadgets_make() error: double free of 'gi->composite.gadget_driver.driver.name' (line 2048) vim +2050 drivers/usb/gadget/configfs.c 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1981 static struct config_group *gadgets_make( 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1982 struct config_group *group, 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1983 const char *name) 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1984 { 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1985 struct gadget_info *gi; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1986 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1987 gi = kzalloc(sizeof(*gi), GFP_KERNEL); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1988 if (!gi) 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1989 return ERR_PTR(-ENOMEM); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1990 1ae1602de028aca Christoph Hellwig 2016-02-26 1991 config_group_init_type_name(&gi->group, name, &gadget_root_type); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1992 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1993 config_group_init_type_name(&gi->functions_group, "functions", 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1994 &functions_type); 1ae1602de028aca Christoph Hellwig 2016-02-26 1995 configfs_add_default_group(&gi->functions_group, &gi->group); 1ae1602de028aca Christoph Hellwig 2016-02-26 1996 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1997 config_group_init_type_name(&gi->configs_group, "configs", 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 1998 &config_desc_type); 1ae1602de028aca Christoph Hellwig 2016-02-26 1999 configfs_add_default_group(&gi->configs_group, &gi->group); 1ae1602de028aca Christoph Hellwig 2016-02-26 2000 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2001 config_group_init_type_name(&gi->strings_group, "strings", 6e2a512d9532c51 Daniel Scally 2023-02-06 2002 &gadget_language_strings_type); 1ae1602de028aca Christoph Hellwig 2016-02-26 2003 configfs_add_default_group(&gi->strings_group, &gi->group); 1ae1602de028aca Christoph Hellwig 2016-02-26 2004 87213d388e927aa Andrzej Pietrasiewicz 2014-05-08 2005 config_group_init_type_name(&gi->os_desc_group, "os_desc", 87213d388e927aa Andrzej Pietrasiewicz 2014-05-08 2006 &os_desc_type); 1ae1602de028aca Christoph Hellwig 2016-02-26 2007 configfs_add_default_group(&gi->os_desc_group, &gi->group); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2008 93c473948c58897 Jó Ágila Bitsch 2023-01-13 2009 config_group_init_type_name(&gi->webusb_group, "webusb", 93c473948c58897 Jó Ágila Bitsch 2023-01-13 2010 &webusb_type); 93c473948c58897 Jó Ágila Bitsch 2023-01-13 2011 configfs_add_default_group(&gi->webusb_group, &gi->group); 93c473948c58897 Jó Ágila Bitsch 2023-01-13 2012 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2013 gi->composite.bind = configfs_do_nothing; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2014 gi->composite.unbind = configfs_do_nothing; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2015 gi->composite.suspend = NULL; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2016 gi->composite.resume = NULL; e2459108b5a0604 taehyun.cho 2021-01-07 2017 gi->composite.max_speed = USB_SPEED_SUPER_PLUS; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2018 093edc2baad2c25 Wei Yongjun 2019-10-30 2019 spin_lock_init(&gi->spinlock); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2020 mutex_init(&gi->lock); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2021 INIT_LIST_HEAD(&gi->string_list); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2022 INIT_LIST_HEAD(&gi->available_func); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2023 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2024 composite_init_dev(&gi->cdev); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2025 gi->cdev.desc.bLength = USB_DT_DEVICE_SIZE; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2026 gi->cdev.desc.bDescriptorType = USB_DT_DEVICE; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2027 gi->cdev.desc.bcdDevice = cpu_to_le16(get_default_bcdDevice()); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2028 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2029 gi->composite.gadget_driver = configfs_driver_template; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2030 7c07553807c5125 Chanh Nguyen 2023-01-11 2031 gi->composite.gadget_driver.driver.name = kasprintf(GFP_KERNEL, 7c07553807c5125 Chanh Nguyen 2023-01-11 2032 "configfs-gadget.%s", name); 7c07553807c5125 Chanh Nguyen 2023-01-11 2033 if (!gi->composite.gadget_driver.driver.name) 7c07553807c5125 Chanh Nguyen 2023-01-11 2034 goto err; 7c07553807c5125 Chanh Nguyen 2023-01-11 2035 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2036 gi->composite.gadget_driver.function = kstrdup(name, GFP_KERNEL); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2037 gi->composite.name = gi->composite.gadget_driver.function; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2038 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2039 if (!gi->composite.gadget_driver.function) 7c07553807c5125 Chanh Nguyen 2023-01-11 2040 goto out_free_driver_name; 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2041 957b40b3b769bc2 Neill Kapron 2024-02-01 2042 if (android_device_create(&gi->cdev.android_opts)) 957b40b3b769bc2 Neill Kapron 2024-02-01 2043 goto out_free_driver_name_and_function; 957b40b3b769bc2 Neill Kapron 2024-02-01 2044 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2045 return &gi->group; 7c07553807c5125 Chanh Nguyen 2023-01-11 2046 7c07553807c5125 Chanh Nguyen 2023-01-11 2047 out_free_driver_name: 7c07553807c5125 Chanh Nguyen 2023-01-11 @2048 kfree(gi->composite.gadget_driver.driver.name); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 957b40b3b769bc2 Neill Kapron 2024-02-01 2049 out_free_driver_name_and_function: 957b40b3b769bc2 Neill Kapron 2024-02-01 @2050 kfree(gi->composite.gadget_driver.driver.name); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Double free. 957b40b3b769bc2 Neill Kapron 2024-02-01 2051 kfree(gi->composite.gadget_driver.function); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2052 err: 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2053 kfree(gi); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2054 return ERR_PTR(-ENOMEM); 88af8bbe4ef7810 Sebastian Andrzej Siewior 2012-12-23 2055 } -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki