lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 10 Feb 2022 14:17:41 -0500 From: Felix Kuehling <felix.kuehling@....com> To: trix@...hat.com, alexander.deucher@....com, christian.koenig@....com, Xinhui.Pan@....com, airlied@...ux.ie, daniel@...ll.ch, nathan@...nel.org, ndesaulniers@...gle.com, rajneesh.bhardwaj@....com, david.yatsin@....com Cc: llvm@...ts.linux.dev, dri-devel@...ts.freedesktop.org, amd-gfx@...ts.freedesktop.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] drm/amdkfd: fix loop error handling Am 2022-02-10 um 12:04 schrieb trix@...hat.com: > From: Tom Rix <trix@...hat.com> > > Clang static analysis reports this problem > kfd_chardev.c:2594:16: warning: The expression is an uninitialized value. > The computed value will also be garbage > while (ret && i--) { > ^~~ > > i is a loop variable and this block unwinds a problem in the loop. > When the error happens before the loop, this value is garbage. > Move the initialization of i to its decalaration. > > Fixes: be072b06c739 ("drm/amdkfd: CRIU export BOs as prime dmabuf objects") > Signed-off-by: Tom Rix <trix@...hat.com> Thank you. I applied the patch to amd-staging-drm-next. Regards, Felix > --- > drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > index 636391c61cafb..4310ca07af130 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > @@ -2374,7 +2374,7 @@ static int criu_restore_bos(struct kfd_process *p, > const bool criu_resume = true; > bool flush_tlbs = false; > int ret = 0, j = 0; > - uint32_t i; > + uint32_t i = 0; > > if (*priv_offset + (args->num_bos * sizeof(*bo_privs)) > max_priv_data_size) > return -EINVAL; > @@ -2410,7 +2410,7 @@ static int criu_restore_bos(struct kfd_process *p, > *priv_offset += args->num_bos * sizeof(*bo_privs); > > /* Create and map new BOs */ > - for (i = 0; i < args->num_bos; i++) { > + for (; i < args->num_bos; i++) { > struct kfd_criu_bo_bucket *bo_bucket; > struct kfd_criu_bo_priv_data *bo_priv; > struct kfd_dev *dev;
Powered by blists - more mailing lists