Re: [PATCH v3 1/3] scsi: libsas: Allow smp_execute_task() arguments to be on the stack

From: yangxingui
Date: Mon Mar 11 2024 - 03:35:41 EST




On 2024/3/11 13:42, Dan Carpenter wrote:
Hi Xingui,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Xingui-Yang/scsi-libsas-Allow-smp_execute_task-arguments-to-be-on-the-stack/20240307-174215
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
patch link: https://lore.kernel.org/r/20240307093733.41222-2-yangxingui%40huawei.com
patch subject: [PATCH v3 1/3] scsi: libsas: Allow smp_execute_task() arguments to be on the stack
config: i386-randconfig-141-20240308 (https://download.01.org/0day-ci/archive/20240310/202403102353.jUPi6fOP-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

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/202403102353.jUPi6fOP-lkp@xxxxxxxxx/

New smatch warnings:
drivers/scsi/libsas/sas_expander.c:148 smp_execute_task() warn: possible memory leak of '_req'

vim +/_req +148 drivers/scsi/libsas/sas_expander.c

adfd2325dfc5cf6 Xingui Yang 2024-03-07 138 static int smp_execute_task(struct domain_device *dev, void *req, int req_size,
adfd2325dfc5cf6 Xingui Yang 2024-03-07 139 void *resp, int resp_size)
adfd2325dfc5cf6 Xingui Yang 2024-03-07 140 {
adfd2325dfc5cf6 Xingui Yang 2024-03-07 141 struct scatterlist req_sg;
adfd2325dfc5cf6 Xingui Yang 2024-03-07 142 struct scatterlist resp_sg;
adfd2325dfc5cf6 Xingui Yang 2024-03-07 143 void *_req = kmemdup(req, req_size, GFP_KERNEL);
adfd2325dfc5cf6 Xingui Yang 2024-03-07 144 void *_resp = alloc_smp_resp(resp_size);
adfd2325dfc5cf6 Xingui Yang 2024-03-07 145 int ret;
adfd2325dfc5cf6 Xingui Yang 2024-03-07 146
adfd2325dfc5cf6 Xingui Yang 2024-03-07 147 if (!_req || !resp)
adfd2325dfc5cf6 Xingui Yang 2024-03-07 @148 return -ENOMEM;

I haven't looked at the callers so I don't know how likely it is for one
of the allocations to fail and the other succeed... But it seems
possible.

Yes, it's possible. This patch has been canceled in v4. Based on John's suggestion, if there are plans to resubmit modifications , we will pay attention to this, thank you.

Thanks,
Xingui