From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [patch] fcntl: return -EFAULT if copy_to_user fails Date: Thu, 3 Jun 2010 12:04:02 +0200 Message-ID: <20100603100402.GR5483@bicker> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Alexander Viro , Andrew Morton , Oleg Nesterov , Jens Axboe , Greg Kroah-Hartman , Peter Zijlstra , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Matthew Wilcox Return-path: Received: from mail-ew0-f223.google.com ([209.85.219.223]:37400 "EHLO mail-ew0-f223.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758097Ab0FCKET (ORCPT ); Thu, 3 Jun 2010 06:04:19 -0400 Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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. Signed-off-by: Dan Carpenter diff --git a/fs/fcntl.c b/fs/fcntl.c index f74d270..0ea7b0f 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -274,7 +274,7 @@ static int f_setown_ex(struct file *filp, unsigned long arg) ret = copy_from_user(&owner, owner_p, sizeof(owner)); if (ret) - return ret; + return -EFAULT; switch (owner.type) { case F_OWNER_TID: