Re: [PATCH RESEND] misc: ti-st: st_kim: Fix use after free bug in kim_remove due to race condition

From: kernel test robot
Date: Sat Mar 18 2023 - 06:25:57 EST


Hi Zheng,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on char-misc/char-misc-next char-misc/char-misc-linus soc/for-next v6.3-rc2 next-20230317]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Zheng-Wang/misc-ti-st-st_kim-Fix-use-after-free-bug-in-kim_remove-due-to-race-condition/20230318-161853
patch link: https://lore.kernel.org/r/20230318081743.797531-1-zyytlz.wz%40163.com
patch subject: [PATCH RESEND] misc: ti-st: st_kim: Fix use after free bug in kim_remove due to race condition
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20230318/202303181850.RI6iAAhO-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/ecbe190b970112b4b10e2a1766da933168ae5fdd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Zheng-Wang/misc-ti-st-st_kim-Fix-use-after-free-bug-in-kim_remove-due-to-race-condition/20230318-161853
git checkout ecbe190b970112b4b10e2a1766da933168ae5fdd
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202303181850.RI6iAAhO-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/misc/ti-st/st_kim.c: In function 'kim_remove':
>> drivers/misc/ti-st/st_kim.c:788:27: warning: 'kim_gdata' is used uninitialized [-Wuninitialized]
788 | struct st_data_s *st_gdata = kim_gdata->core_data;
| ^~~~~~~~
drivers/misc/ti-st/st_kim.c:787:34: note: 'kim_gdata' was declared here
787 | struct kim_data_s *kim_gdata;
| ^~~~~~~~~


vim +/kim_gdata +788 drivers/misc/ti-st/st_kim.c

782
783 static int kim_remove(struct platform_device *pdev)
784 {
785 /* free the GPIOs requested */
786 struct ti_st_plat_data *pdata = pdev->dev.platform_data;
787 struct kim_data_s *kim_gdata;
> 788 struct st_data_s *st_gdata = kim_gdata->core_data;
789
790 kim_gdata = platform_get_drvdata(pdev);
791
792 cancel_work_sync(&st_gdata->work_write_wakeup);
793
794 /*
795 * Free the Bluetooth/FM/GPIO
796 * nShutdown gpio from the system
797 */
798 gpio_free(pdata->nshutdown_gpio);
799 pr_info("nshutdown GPIO Freed");
800
801 debugfs_remove_recursive(kim_debugfs_dir);
802 sysfs_remove_group(&pdev->dev.kobj, &uim_attr_grp);
803 pr_info("sysfs entries removed");
804
805 kim_gdata->kim_pdev = NULL;
806 st_core_exit(st_gdata);
807
808 kfree(kim_gdata);
809 kim_gdata = NULL;
810 return 0;
811 }
812

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests