Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp577484ybt; Fri, 19 Jun 2020 08:33:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb4LdKcWEuXhruIPdvaoYxQqovFmGkYoHN9hFYTYk9Y06vjNUpwhCjEMKD6Dtgig+aO6Zy X-Received: by 2002:aa7:c541:: with SMTP id s1mr3957854edr.167.1592580808859; Fri, 19 Jun 2020 08:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592580808; cv=none; d=google.com; s=arc-20160816; b=tOriMIrWdSUlZwiwthz+vXAZEXliuo73j9v4qk4b3dMxEtU0kuMPCtmCWMlg/jN24C SAyrR4TpYL+Cizl13ev/qPSbXsCIxQ+AWM0CCIZXbgRpc7oVgiNqkDkszn/W+omkcV96 XU+OsITFn0pclBUBN3GcBToiab7Miz+5lqIqc60WfKsM+/za3mxCstDDLs5js5HryuGE yXSBLWl98xXDJjla0sTLAUlgytTK+Vai6BQV7BTUMDKKzfwI2v7pfrqX2Lj6NEusUgNr RzD/rzNCVuiguha/0z42eSfbxeXFjz5fVLNpBXT9sRBP33zRugRaj513exLso19zsUoK vNCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=XLRF4mUtAQUXajDPjqmlS6Z6JyIk+wk74386chbw6Xk=; b=OKW7n80ZpXVANJH+zDxlEAzwnB8vp2fwFZowVVIA0fkPEz4JA1iMjf0ilBsRITZaft 6JkA2Xt6h9MFuAC1cAC+uFlbVbLOC9jPBrkBDP3iYLgA6O0idT4JZq49hY2xat7EwCm+ BLwoqUULZsHvq9Tl6zIlFH1OYr6uZWreJLDaY3WHa8wn0BdQF2/0BiC+KRg/RGy0HV+/ H2c1hgAVuGqqQbUF8tTWZVUVOvUiMHDBTm3y0IQrWQR14Ri5/zqyDZPEnoYfZAh8d+va 5ubAL/3AUdNGNWojeChj/IilVbZ0ppjDMIRIKx/8nCxY8JjhahXHFYgYsEG3ZE/fL3jv Ij9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=NJvT+V7a; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r16si4250057eds.6.2020.06.19.08.33.06; Fri, 19 Jun 2020 08:33:28 -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=@kernel.org header.s=default header.b=NJvT+V7a; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393725AbgFSPa3 (ORCPT + 99 others); Fri, 19 Jun 2020 11:30:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:34304 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2393479AbgFSPa2 (ORCPT ); Fri, 19 Jun 2020 11:30:28 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9513A20757; Fri, 19 Jun 2020 15:30:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592580627; bh=r6EliizRfhM4+8HlSDWbsKnzlj+GEis6zN/fAjxUXHM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NJvT+V7aL39BEY01z8CnXTiY4qCQCZ1Ur2sb88rDpdFd+HX6wY3pTsiJvFst6xlT0 zYMRLdbPrwP/FfooXJAClKCWEzaM/RLFAjAUZFMMl9MMPR1ofW87dGxe7olp7ViLYY 7aFriK4v39MnybTkKor9N7YW39xW40m3CZM1ZblQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, stable@kernel.org, Al Viro Subject: [PATCH 5.7 322/376] sparc64: fix misuses of access_process_vm() in genregs32_[sg]et() Date: Fri, 19 Jun 2020 16:34:00 +0200 Message-Id: <20200619141725.573811905@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141710.350494719@linuxfoundation.org> References: <20200619141710.350494719@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Al Viro commit 142cd25293f6a7ecbdff4fb0af17de6438d46433 upstream. We do need access_process_vm() to access the target's reg_window. However, access to caller's memory (storing the result in genregs32_get(), fetching the new values in case of genregs32_set()) should be done by normal uaccess primitives. Fixes: ad4f95764040 ([SPARC64]: Fix user accesses in regset code.) Cc: stable@kernel.org Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman --- arch/sparc/kernel/ptrace_64.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) --- a/arch/sparc/kernel/ptrace_64.c +++ b/arch/sparc/kernel/ptrace_64.c @@ -572,19 +572,13 @@ static int genregs32_get(struct task_str for (; count > 0 && pos < 32; count--) { if (access_process_vm(target, (unsigned long) - ®_window[pos], + ®_window[pos++], ®, sizeof(reg), FOLL_FORCE) != sizeof(reg)) return -EFAULT; - if (access_process_vm(target, - (unsigned long) u, - ®, sizeof(reg), - FOLL_FORCE | FOLL_WRITE) - != sizeof(reg)) + if (put_user(reg, u++)) return -EFAULT; - pos++; - u++; } } } @@ -684,12 +678,7 @@ static int genregs32_set(struct task_str } } else { for (; count > 0 && pos < 32; count--) { - if (access_process_vm(target, - (unsigned long) - u, - ®, sizeof(reg), - FOLL_FORCE) - != sizeof(reg)) + if (get_user(reg, u++)) return -EFAULT; if (access_process_vm(target, (unsigned long)