From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E628CC4CEC7 for ; Fri, 13 Sep 2019 15:12:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C028920640 for ; Fri, 13 Sep 2019 15:12:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=efficios.com header.i=@efficios.com header.b="nLRy5vzI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391243AbfIMPM1 (ORCPT ); Fri, 13 Sep 2019 11:12:27 -0400 Received: from mail.efficios.com ([167.114.142.138]:52478 "EHLO mail.efficios.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388211AbfIMPM0 (ORCPT ); Fri, 13 Sep 2019 11:12:26 -0400 Received: from localhost (ip6-localhost [IPv6:::1]) by mail.efficios.com (Postfix) with ESMTP id 12D3C2D10CF; Fri, 13 Sep 2019 11:12:25 -0400 (EDT) Received: from mail.efficios.com ([IPv6:::1]) by localhost (mail02.efficios.com [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id 9kApdPTo4PfC; Fri, 13 Sep 2019 11:12:24 -0400 (EDT) Received: from localhost (ip6-localhost [IPv6:::1]) by mail.efficios.com (Postfix) with ESMTP id 9F11E2D10C3; Fri, 13 Sep 2019 11:12:24 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.efficios.com 9F11E2D10C3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=default; t=1568387544; bh=CF30skzmeT+OHOZpIIX+JRHGYZLBT9tYk5qDUQF0abw=; h=From:To:Date:Message-Id; b=nLRy5vzItmeyU9fB8/JrQPYtOpwgoVRNIf2mTFNczbPJezOhX4D0oELdgy41RaCBd n6b/elsAxflYzrhtkPvjKH9B34k8ploVl+IeibQKC4aTSk0rBvgDt6XaEZ9dukvHO5 p5Y8/sr77BYPC0Mve53jffjmcMfWJ81ISWkfd7S7DgvyNpdppoDOKFGikKfFgoVkAF mqPc/V/EXI+w6RCDdF1Cr2wLEVq8I3dj+FBBjVEDRWnGB1tJDelgw0oFxLubwMnn7x l4oo5AiVjXyq5RIaKNMKmElPoCnOF2EjYWIJxra9GISWaTAwbu/pcjmRwgkou4zEYN I0eRysGinwWKA== X-Virus-Scanned: amavisd-new at efficios.com Received: from mail.efficios.com ([IPv6:::1]) by localhost (mail02.efficios.com [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id k4IJtem76veo; Fri, 13 Sep 2019 11:12:24 -0400 (EDT) Received: from localhost.localdomain (192-222-181-218.qc.cable.ebox.net [192.222.181.218]) by mail.efficios.com (Postfix) with ESMTPSA id 630762D10BD; Fri, 13 Sep 2019 11:12:24 -0400 (EDT) From: Mathieu Desnoyers To: Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , "H . Peter Anvin" , Paul Turner , linux-api@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH for 5.3 1/3] rseq: Fix: Reject unknown flags on rseq unregister Date: Fri, 13 Sep 2019 11:12:18 -0400 Message-Id: <20190913151220.3105-1-mathieu.desnoyers@efficios.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is preferrable to reject unknown flags within rseq unregistration rather than to ignore them. It is an oversight caused by the fact that the check for unknown flags is after the rseq unregister flag check. Signed-off-by: Mathieu Desnoyers Cc: Thomas Gleixner Cc: Peter Zijlstra (Intel) Cc: "Paul E. McKenney" Cc: Boqun Feng Cc: "H . Peter Anvin" Cc: Paul Turner Cc: linux-api@vger.kernel.org Cc: --- kernel/rseq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rseq.c b/kernel/rseq.c index 27c48eb7de40..a4f86a9d6937 100644 --- a/kernel/rseq.c +++ b/kernel/rseq.c @@ -310,6 +310,8 @@ SYSCALL_DEFINE4(rseq, struct rseq __user *, rseq, u32, rseq_len, int ret; if (flags & RSEQ_FLAG_UNREGISTER) { + if (flags & ~RSEQ_FLAG_UNREGISTER) + return -EINVAL; /* Unregister rseq for current thread. */ if (current->rseq != rseq || !current->rseq) return -EINVAL; -- 2.17.1