public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Horst von Brand <vonbrand@inf.utfsm.cl>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Ignored return value of __clear_user in fs/binfmt_elf.c?
Date: Wed, 23 Feb 2005 16:54:09 -0800	[thread overview]
Message-ID: <20050223165409.324cc64f.akpm@osdl.org> (raw)
In-Reply-To: <200502231727.j1NHRPGH028335@laptop11.inf.utfsm.cl>

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
+					 */
+				}
 			}
 		}
 
_


      reply	other threads:[~2005-02-24  0:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-23 17:27 Ignored return value of __clear_user in fs/binfmt_elf.c? Horst von Brand
2005-02-24  0:54 ` Andrew Morton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050223165409.324cc64f.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vonbrand@inf.utfsm.cl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox