drivers/of/dynamic.c:935 of_changeset_action() warn: possible memory leak of 'ce'

From: Dan Carpenter
Date: Thu Sep 07 2023 - 12:52:37 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 99d99825fc075fd24b60cc9cf0fb1e20b9c16b0f
commit: 914d9d831e6126a6e7a92e27fcfaa250671be42c of: dynamic: Refactor action prints to not use "%pOF" inside devtree_lock
config: x86_64-randconfig-161-20230831 (https://download.01.org/0day-ci/archive/20230901/202309011059.EOdr4im9-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230901/202309011059.EOdr4im9-lkp@xxxxxxxxx/reproduce)

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 <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202309011059.EOdr4im9-lkp@xxxxxxxxx/

smatch warnings:
drivers/of/dynamic.c:935 of_changeset_action() warn: possible memory leak of 'ce'

vim +/ce +935 drivers/of/dynamic.c

201c910bd6898d Pantelis Antoniou 2014-07-04 925 int of_changeset_action(struct of_changeset *ocs, unsigned long action,
201c910bd6898d Pantelis Antoniou 2014-07-04 926 struct device_node *np, struct property *prop)
201c910bd6898d Pantelis Antoniou 2014-07-04 927 {
201c910bd6898d Pantelis Antoniou 2014-07-04 928 struct of_changeset_entry *ce;
201c910bd6898d Pantelis Antoniou 2014-07-04 929
201c910bd6898d Pantelis Antoniou 2014-07-04 930 ce = kzalloc(sizeof(*ce), GFP_KERNEL);
606ad42aa3b1fe Rob Herring 2016-06-15 931 if (!ce)
201c910bd6898d Pantelis Antoniou 2014-07-04 932 return -ENOMEM;
606ad42aa3b1fe Rob Herring 2016-06-15 933
914d9d831e6126 Rob Herring 2023-08-18 934 if (WARN_ON(action >= ARRAY_SIZE(action_names)))
914d9d831e6126 Rob Herring 2023-08-18 @935 return -EINVAL;

No kfree(ce). Probably we move this check before the kmalloc()?

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