Received: by 2002:a17:90a:88:0:0:0:0 with SMTP id a8csp10503pja; Fri, 22 Nov 2019 02:45:50 -0800 (PST) X-Google-Smtp-Source: APXvYqy7E7pvsogg9js8vf1Rc3f+rZzya9oT/0XxfWjjcxlRJuimTyGuqdQvf5y/dRnK45e6Mwm2 X-Received: by 2002:a17:906:fac7:: with SMTP id lu7mr21664934ejb.5.1574419550548; Fri, 22 Nov 2019 02:45:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574419550; cv=none; d=google.com; s=arc-20160816; b=q8p8CSG3G4ePNcMWiypql7pyArhw043CbH9Wtk/ovYplEdxImDkQ6yrPhwkloo5tro 1evgeZ+e2mB9KEUnaj9yoTeBu/SfyhfXicr2F0G0n/u0gle5R7gFQK/eR5h/UKReTlGf MHLo9l2hky7EbsSdVV0iD20jEeHVDok8hQ9RmwN89zLrWtPQe4Rkx97mqYRPKYUszqxZ nTUnfNy5Gwk5kH85hZPW+c5AtYCwQPCFRi6Hr3dglquqAEO6Oh7/SYinHaunJlwufzrM tum5U27qTCMjbtIItNG2l2XTdlruR+l1YfEPs3yUUZk+nYp8UW6m42ZDsreQB8iQsFTJ F8tQ== 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=Njq9YTVTviQoST6y5yxblXMtj1yMOL+T7sDGnpcfN0I=; b=VuPhGXw0ZcMtwhdNr6KIdG/NldUtjfUVEr5rIkN346As6S7QxPNVfID30Yvc7pQX4D pEp7tGUZmifZAxAHFjHYqe9R9Zo+YbS//HxzkxaP1UwNJnpPkF1CFA8mwabURMzf40h+ bEyPrIreH08HEdaedJlUdL7tT7LCKIJBl8qQQTxJQMW1Za5FNkEKoysnjMAB7Osmds17 X6Rw0AVFtsVhcQHwa5dR/EXZJ4OrM8AoPWM0F14Vg3HpvT56YntZNqwZC7IPEglu8L09 KYkPePdRIz2TustrcBfT6c6oPShWRRvjUyn2Avcyxeb0BNdYgBOY6LfetULrMnl9ZP7a 4/kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wznjFRwZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f26si3951241ejb.88.2019.11.22.02.45.27; Fri, 22 Nov 2019 02:45:50 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wznjFRwZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727888AbfKVKlO (ORCPT + 99 others); Fri, 22 Nov 2019 05:41:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:45614 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727733AbfKVKlM (ORCPT ); Fri, 22 Nov 2019 05:41:12 -0500 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 BB78220717; Fri, 22 Nov 2019 10:41:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574419271; bh=8AN2pFZyrm0yIe8Lxq0JW9552ptGWoMKWXo+U6zPmiA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wznjFRwZVAPirzAIoWQSArb5KEs9dsQ3nQ0pb9MabssGPpEXtoYY2eCrYvD1Z+P/1 rs8RiLS6ZQwNjN7R/JgHQZ60wGrVg6MFXqh7WOZxXGC+0moDygy2A2YgM4BdHq00PE 9e4fkgsg3QfQvj70Ft5iOntvRtGpYLHtRYptVk3M= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Thomas Gleixner , "Eric W. Biederman" , Sasha Levin Subject: [PATCH 4.9 054/222] signal: Properly deliver SIGSEGV from x86 uprobes Date: Fri, 22 Nov 2019 11:26:34 +0100 Message-Id: <20191122100856.164465952@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191122100830.874290814@linuxfoundation.org> References: <20191122100830.874290814@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: Eric W. Biederman [ Upstream commit 4a63c1ffd384ebdce40aac9c997dab68379137be ] For userspace to tell the difference between an random signal and an exception, the exception must include siginfo information. Using SEND_SIG_FORCED for SIGSEGV is thus wrong, and it will result in userspace seeing si_code == SI_USER (like a random signal) instead of si_code == SI_KERNEL or a more specific si_code as all exceptions deliver. Therefore replace force_sig_info(SIGSEGV, SEND_SIG_FORCE, current) with force_sig(SIG_SEGV, current) which gets this right and is shorter and easier to type. Fixes: 791eca10107f ("uretprobes/x86: Hijack return address") Reviewed-by: Thomas Gleixner Signed-off-by: "Eric W. Biederman" Signed-off-by: Sasha Levin --- arch/x86/kernel/uprobes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c index e35466afe989d..eac679ab543f6 100644 --- a/arch/x86/kernel/uprobes.c +++ b/arch/x86/kernel/uprobes.c @@ -983,7 +983,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, " "%%ip=%#lx\n", current->pid, regs->sp, regs->ip); - force_sig_info(SIGSEGV, SEND_SIG_FORCED, current); + force_sig(SIGSEGV, current); } return -1; -- 2.20.1