copy_from_user again()

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <torvalds@...>
Cc: <linux-kernel@...>
Date: Tuesday, June 17, 2008 - 6:19 pm

Linus,

Just in case you read that:

I thought a little more about your patch. One problem I see (and that is why
I aborted my version of it too) is that it becomes very inaccurate now in reporting.

So for example when you have a source like

offset

0
4
8
<---> unmapped boundary

and it starts copying from 0-8 and faults then with your patch it will
return full size even though it could have copied 8 bytes (return size
- 8) That is what I meant by breaking it.  Arguably it's just a
different breakage.

IIRC mount was quite sensitive to that, as in it passed some data before
the a fault boundary and relies on that data getting through. It might
be lucky with the alignment or it might now.

So with your change the exception handler would also need to be fixed
to copy the non faulted part to the target.

-Andi

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
copy_from_user again(), Andi Kleen, (Tue Jun 17, 6:19 pm)
Re: copy_from_user again(), Linus Torvalds, (Tue Jun 17, 7:41 pm)