Messages in this thread | | | Date | Thu, 03 Jun 2010 22:24:28 +0900 | From | Takuya Yoshikawa <> | Subject | Re: [patch v2] fcntl: return -EFAULT if copy_to_user fails |
| |
(2010/06/03 22:10), Nick Piggin wrote: > On Thu, Jun 03, 2010 at 02:38:03PM +0200, Eric Dumazet wrote: >> Le jeudi 03 juin 2010 à 21:16 +0900, Takuya Yoshikawa a écrit : >>> (2010/06/03 20:59), Jens Axboe wrote: >>>> On 2010-06-03 12:35, Dan Carpenter wrote: >>>>> copy_to_user() returns the number of bytes remaining, but we want to >>>>> return -EFAULT. >>>>> ret = fcntl(fd, F_SETOWN_EX, NULL); >>>>> With the original code ret would be 8 here. >>>>> >>>>> V2: Takuya Yoshikawa pointed out a similar issue in f_getown_ex() >>>> >>>> Pretty basic bug, how long has this been there? >>> >>> IIUC, from the beginning, when these were introduced. >> >> Maybe copy_to_user() was changed sometime to return a partial count >> instead of EFAULT ? > > I think it's been like that since first introduced. Some functions > do need to know in order to do partial copies. > > >> I do think we should have a set of helper functions, instead of >> spreading special EFAULT cases in one housand places... >> >> This is really ugly. >> >> static inline int sec_copy_to_user(arg1, arg2, arg3) >> { >> int res = copy_to_user(arg1, arg2, arg3); >> >> return (res> 0) ? -EFAULT : res; >> } > > It would be unfortunate if it adds more confusion. I'd prefer to have > a sufficiently different name. memcpy_to_user/memcpy_from_user > perhaps?
Then, and memclear_user() ?
>
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |