Re: AUDIT: copy_from_user is a deathtrap.

Larry McVoy
2002-05-19T03:05:57Z

On Sat, May 18, 2002 at 08:01:48PM -0700, Linus Torvalds wrote:
> On Sun, 19 May 2002, Rusty Russell wrote:
> >
> > Huh? No, you ask for 2000 bytes into a buffer that can only take 1000
> > bytes without hitting an unmapped page, returning EFAULT or giving a
> > SIGSEGV is perfectly acceptable.
>
> Bzzt, wrong answer.

Linus is absolutely right. The correct semantics are to return the number
of bytes read, if they are greater than zero, and on the next read return
the error. This has been a corner case in read for a long time in various
Unix versions, and Linus has it right. I went through this back at Sun
and we explored all the different ways, and the bottom line is that you
first ACK that you moved some data and then you NAK on the next read.
--
---
Larry McVoy lm at bitmover.com http://www.bitmover.com/lm