Re: [PATCH] fs/compat.c: fix 'if (a |= b )' typo

From: Andrew Morton
Date: Thu May 11 2006 - 16:32:15 EST


Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
>
> Mentioned by Mark Armbrust somewhere on Usenet.
>
> Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
> ---
>
> --- a/fs/compat.c
> +++ b/fs/compat.c
> @@ -1913,7 +1913,7 @@ asmlinkage long compat_sys_ppoll(struct
> }
>
> if (sigmask) {
> - if (sigsetsize |= sizeof(compat_sigset_t))
> + if (sigsetsize != sizeof(compat_sigset_t))
> return -EINVAL;
> if (copy_from_user(&ss32, sigmask, sizeof(ss32)))
> return -EFAULT;

Oh wow. I can only assume that this code leg hasn't been exercised at all.

(I'm a bit surprised that the compiler doesn't warn and demand another set
of parentheses, actually. I guess they decided not to do that for some
reason).

I'll tag this for a 2.6.16 backport, but I'm worried that what we have here
is a pretty significant codepath which just hasn't been executed.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/