Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

padata: fix uninitialized return value in padata_replace()

According to Geert's report[0],

kernel/padata.c: warning: 'err' may be used uninitialized in this
function [-Wuninitialized]: => 539:2

Warning is seen only with older compilers on certain archs. The
runtime effect is potentially returning garbage down the stack when
padata's cpumasks are modified before any pcrypt requests have run.

Simplest fix is to initialize err to the success value.

[0] http://lkml.kernel.org/r/20200210135506.11536-1-geert@linux-m68k.org

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: bbefa1dd6a6d ("crypto: pcrypt - Avoid deadlock by using per-instance padata queues")
Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Daniel Jordan and committed by
Herbert Xu
41ccdbfd fcdba3c3

+1 -1
+1 -1
kernel/padata.c
··· 512 512 static int padata_replace(struct padata_instance *pinst) 513 513 { 514 514 struct padata_shell *ps; 515 - int err; 515 + int err = 0; 516 516 517 517 pinst->flags |= PADATA_RESET; 518 518