Messages in this thread Patch in this message | | | Date | Wed, 23 Feb 2005 16:54:09 -0800 | From | Andrew Morton <> | Subject | Re: Ignored return value of __clear_user in fs/binfmt_elf.c? |
| |
Horst von Brand <vonbrand@inf.utfsm.cl> wrote: > > Machine is sparc64, bk of today, gcc-3.4.2-6.fc3 (Aurora Corona). First 2.6 > I try to build here, so it might be something known. > > Build fails due to -Werror with: > > include/asm/uaccess.h: In function `load_elf_binary': > arch/sparc64/kernel/../../../fs/binfmt_elf.c:811: warning: ignoring return value of `__clear_user', declared with attribute warn_unused_result
Oh bugger.
> Around line 811 of fs/binfmt_elf.c I see: > > /* > * This bss-zeroing can fail if the ELF file > * specifies odd protections. So we don't check * the return value > */ > (void)clear_user((void __user *)elf_bss + > load_bias, nbyte); > > so presumably this discarding is OK here... > > I wonder why an explicit (void) cast is not considered "use" by the > compiler. But then again, explicitly throwing away isn't really "use"...
I'd assumed that it would work. How about this?
--- 25/fs/binfmt_elf.c~binfmt_elf-build-fix Wed Feb 23 16:52:48 2005 +++ 25-akpm/fs/binfmt_elf.c Wed Feb 23 16:53:40 2005 @@ -821,13 +821,14 @@ static int load_elf_binary(struct linux_ nbyte = ELF_MIN_ALIGN - nbyte; if (nbyte > elf_brk - elf_bss) nbyte = elf_brk - elf_bss; - /* - * This bss-zeroing can fail if the ELF file - * specifies odd protections. So we don't check - * the return value - */ - (void)clear_user((void __user *)elf_bss + - load_bias, nbyte); + if (clear_user((void __user *)elf_bss + + load_bias, nbyte)) { + /* + * This bss-zeroing can fail if the ELF + * file specifies odd protections. So + * we don't check the return value + */ + } } } _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |