Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2675624pxb; Mon, 19 Apr 2021 11:00:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLfAoeFt9iN/ev1gK4knET/2OLk3JDXPvOszZT525+er2G/9nX9Nva3IxWjIN8LP+lNQ0U X-Received: by 2002:a05:6402:4405:: with SMTP id y5mr4257840eda.149.1618855213194; Mon, 19 Apr 2021 11:00:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618855213; cv=none; d=google.com; s=arc-20160816; b=p5mPVXqxxyW8Jrlas0zYK3T1yiyau4Alv5xwEAnBWG3z2qNHOSr7ITHUEmFKMJN5OW br08wVPQhOBe2h+q1efC5pNkZLGrTnb774pXlGSgdLoVsaoPvqSVIdD6+ar+JRFE1Ff/ xwqOcNE6pFb71LPMXEyqDf8FcZO9HUYfklElZ0DRg78n3xLtbWnYq4MJMT2WDULydEG+ iS3IEwwmTMcWblndb5/ujk071wfqkVRv9V9F2uITsqO0V6h+gWFERfSWnWFdziOHr/Jt Qg6NexnR6TNzHyNqtkndzvL/+bsKIM7ZybwmYz4BPhLY9VwTTo+7pPM4J5rkVUeUoax/ kL5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WroybsfiKKCwqdsq7XiVc83oWlB+3MXbiSznOmgCnYA=; b=sXcza1nEErYqZEcTqX9+g92eSqEQHSYmDleBNLr0S8dgjvJv5kfB/puIG0VsvfUGFM 9nsaAUP4q+Y5D48Gu2EszKFcqlABlkD6F2OUyXjsT5ynKI805d3SCPOUUz8EogZeaBps ruQw0Y7bnVJKMk1D6l/BtXHDF/SBTl19QJ4Nn+3l/W0us83vQRucpHvX8TrsezEIITyR jH7x+OBCdWj27XIAPdzbScR30Co4vLCJZULevEVN3QtzsnYzBZcj2I/vYvF6BXKXnkqH eRC3swxhRIzkOSEULmj2UXNABRN7svg1xx8+xs5OYlgVGCWeJyQUYY11ulJ2xYWX6Hy6 kL6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zE+H1tgu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y11si12835471edd.539.2021.04.19.10.59.48; Mon, 19 Apr 2021 11:00:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zE+H1tgu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241170AbhDSNgK (ORCPT + 99 others); Mon, 19 Apr 2021 09:36:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:57240 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233305AbhDSNXG (ORCPT ); Mon, 19 Apr 2021 09:23:06 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E549F6140A; Mon, 19 Apr 2021 13:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1618838313; bh=tFOjMYGV2tT8V+N29X52ml1YoDEPNjqw+ds9kKuD2cM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zE+H1tgu8TbvTSg4qfydJZSqK+K0/YGnUSu39ewxcJBsCAi+SeBRBnfO3FYftPfb/ sp4nQql+j9MlTRcRDUkO4eM/gdVRkaRBtWn1Yhw+MQoDJXju5cWicBsz1m88lJ8O+R NxWxCnq9prqEeUkqboAYvcqISVREb9zCxbnpP0/4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Wang Qing , Vineet Gupta , Sasha Levin Subject: [PATCH 5.4 16/73] arc: kernel: Return -EFAULT if copy_to_user() fails Date: Mon, 19 Apr 2021 15:06:07 +0200 Message-Id: <20210419130524.352506019@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210419130523.802169214@linuxfoundation.org> References: <20210419130523.802169214@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wang Qing [ Upstream commit 46e152186cd89d940b26726fff11eb3f4935b45a ] The copy_to_user() function returns the number of bytes remaining to be copied, but we want to return -EFAULT if the copy doesn't complete. Signed-off-by: Wang Qing Signed-off-by: Vineet Gupta Signed-off-by: Sasha Levin --- arch/arc/kernel/signal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arc/kernel/signal.c b/arch/arc/kernel/signal.c index 3d57ed0d8535..404518051093 100644 --- a/arch/arc/kernel/signal.c +++ b/arch/arc/kernel/signal.c @@ -96,7 +96,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs, sizeof(sf->uc.uc_mcontext.regs.scratch)); err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t)); - return err; + return err ? -EFAULT : 0; } static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf) @@ -110,7 +110,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf) &(sf->uc.uc_mcontext.regs.scratch), sizeof(sf->uc.uc_mcontext.regs.scratch)); if (err) - return err; + return -EFAULT; set_current_blocked(&set); regs->bta = uregs.scratch.bta; -- 2.30.2