[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Enforce pselect6 sigset s
From: |
Riku Voipio |
Subject: |
Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Enforce pselect6 sigset size restrictions |
Date: |
Tue, 28 Jun 2011 14:51:49 +0300 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Tue, Jun 28, 2011 at 12:21:57PM +0100, Peter Maydell wrote:
> Enforce the same restriction on the size of the sigset passed to
> pselect6 as the Linux kernel does. This is both correct and silences
> a gcc 4.6 warning about a write-only variable.
Odd but true, after all the trouble of passing the size as packed variable,
even the kernel bothers nothing but check that it matches with
sizeof(sigset_t)...
I'll include this and your other two patches for the next round.
Riku
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> This really is the last gcc 4.6 warning fix!
>
> linux-user/syscall.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index fed7a8f..feb2501 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5684,6 +5684,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
> arg1,
>
> if (arg_sigset) {
> sig.set = &set;
> + if (arg_sigsize != sizeof(*target_sigset)) {
> + /* Like the kernel, we enforce correct size sigsets
> */
> + ret = -TARGET_EINVAL;
> + goto fail;
> + }
> target_sigset = lock_user(VERIFY_READ, arg_sigset,
> sizeof(*target_sigset), 1);
> if (!target_sigset) {
> --
> 1.7.5.3