Re: [PATCH] sendfile compat functions on x86_64 and ia64

Andi Kleen
2006-05-05T21:28:28Z

On Friday 05 May 2006 22:44, Alexey Toptygin wrote:
> On Fri, 5 May 2006, Andi Kleen wrote:
>
> > With your change there wouldn't be any sign extension and rw_verify_area
> > couldn't reject negative values them anymore.
> >
> > I think it would be a wrong change because it would differ from a native
> > 32bit kernel.
>
> No...
>
> On a 32 bit kernel (and on a 64 bit kernel using the native interface),
> count is passed to sendfile as unsigned. rw_verify_area explicitly casts
> to signed

To a 64bit signed.

> before checking for negativeness. The only place anywhere in the
> kernel that count is signed (other than where rw_verify area explicitly
> casts it for one test) is in the declaration of sys32_sendfile in the
> x86_64 compat code. I'm pretty sure it's supposed to be unsigned there
> too, and the current code is a typo.

It's a 32bit signed.

Somehow the 32bit signed has to become a 64bit signed to be caught
by rw_verify_area(). The only place that can do that is the compat
layer.

-Andi