From: Rolf Eike Beer Date: Wed, 19 Oct 2022 07:52:16 +0000 (+0200) Subject: binfmt_elf: simplify error handling in load_elf_phdrs() X-Git-Tag: v6.2-rc1~215^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef20c5139c3157b5c6eda46f496952bddffe9ad6;p=thirdparty%2Fkernel%2Flinux.git binfmt_elf: simplify error handling in load_elf_phdrs() The err variable was the same like retval, but capped to <= 0. This is the same as retval as elf_read() never returns positive values. Signed-off-by: Rolf Eike Beer Signed-off-by: Kees Cook Link: https://lore.kernel.org/r/4137126.7Qn9TF0dmF@mobilepool36.emlix.com --- diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 71df1a3c2dac9..528e2ac8931f3 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -462,7 +462,7 @@ static struct elf_phdr *load_elf_phdrs(const struct elfhdr *elf_ex, struct file *elf_file) { struct elf_phdr *elf_phdata = NULL; - int retval, err = -1; + int retval = -1; unsigned int size; /* @@ -484,15 +484,9 @@ static struct elf_phdr *load_elf_phdrs(const struct elfhdr *elf_ex, /* Read in the program headers */ retval = elf_read(elf_file, elf_phdata, size, elf_ex->e_phoff); - if (retval < 0) { - err = retval; - goto out; - } - /* Success! */ - err = 0; out: - if (err) { + if (retval) { kfree(elf_phdata); elf_phdata = NULL; }