From patchwork Thu Mar 30 15:56:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Xu X-Patchwork-Id: 13194483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB26CC6FD1D for ; Thu, 30 Mar 2023 15:57:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 34F946B0072; Thu, 30 Mar 2023 11:57:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B2B26B0074; Thu, 30 Mar 2023 11:57:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12C226B0078; Thu, 30 Mar 2023 11:57:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 056D86B0072 for ; Thu, 30 Mar 2023 11:57:22 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C4402120AB4 for ; Thu, 30 Mar 2023 15:57:21 +0000 (UTC) X-FDA: 80626019082.18.3A099E1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf02.hostedemail.com (Postfix) with ESMTP id BB3D28001F for ; Thu, 30 Mar 2023 15:57:19 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TZSqqLut; spf=pass (imf02.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680191839; a=rsa-sha256; cv=none; b=QgBjYn9ItJwifzHNz4LBPAFcZI8dEEFQgoWa8k6rYkt1NGB2y9ac1+KGaR4VuO77vwwjGG SmUmLy96OJYmQrb3kr4cBQ4HbWx3/gYbdq9c13qjI17DZnGlSPQd7DVPYn7s2Fgt2OG8ft 9qn/rU6Rz0V4zrDYmJHO5hWdkDbyZbg= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TZSqqLut; spf=pass (imf02.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680191839; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sP9rqjignnWh2VSPIiMl4HPMQh9/IMP3JUMCK79G4dM=; b=SD3FQDrfCzQsLpHRI17+fT13524jm0VUtdWRiO84A7vbrbKQtM6jJILlwT860FFSvivOV4 3XMwUod6wy7P6FIGtGUKm3sqQyVcx/yXPqTv1RNS6ro5ISGpWdUh4SZjhwQ4Hl006Yt0XB aywPZwfeWtaXagQLNCrrvLT8Y4cWxgo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1680191839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sP9rqjignnWh2VSPIiMl4HPMQh9/IMP3JUMCK79G4dM=; b=TZSqqLutSnZDtbmFfNm3xmCVZZ/KSrxVItJcuirx8s5Wgs5L8SAblNZ887jRr4zLC+pO0i 7VZYRW6vrzBkkV8yI97cgWia8T4/kNRYXrxMFiG1ROUJHY7o0jymVacEAwroeGTTp/xddS hxx2+Hn8ZIhtg/s+WU91FPUbyrVfP2s= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-523-IMt6O7NGNUCjhbox8j6Y7w-1; Thu, 30 Mar 2023 11:57:17 -0400 X-MC-Unique: IMt6O7NGNUCjhbox8j6Y7w-1 Received: by mail-qt1-f198.google.com with SMTP id m7-20020a05622a118700b003e4e203bc30so10326071qtk.7 for ; Thu, 30 Mar 2023 08:57:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680191832; x=1682783832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sP9rqjignnWh2VSPIiMl4HPMQh9/IMP3JUMCK79G4dM=; b=OpEqtBLiRmpJulp10CMNPk+ddKM6EWNpmM3gMDXnKHgzegGLqWaE2tQF/iTYA4AcLM omIi6HgiteFdqvZCo8OWfRYFjuMc+HpS0OZMhpJ6Zp/0f7D3QL6X5b4Vi5ooK9DbQdnj 1NhsDC/8XImorV9ag7+3vx45JQaKtHVa6pvEcpBIJyHTisMQjh41IlBLLDYuiLB6AxaY GvpdPoyf2oEVEk6qDuwGBE3AydivfllF8Ttt7LKi/p8aJZ15LsiPcyqLhXzEDEpLVUDS Fp+Nl674lD+2+rybxsm5qDcK1DaHwVueqxI8+wviHs117SFn30jRWUJsJdxjQmeIU67o Nnug== X-Gm-Message-State: AO0yUKXDwd1fqsSIXRRrMbv9UMGmeuG/nYon5xRJ+H2XHjVNQRxK/pR7 RTZ0kx3wgmTJWRg+GS+RRQxvrNkXg648xjWzffOgKgyti4Z//6bpYKXVUWsL4I/D4+rXYMd6aAB 3a7lGfYjSG6X4H/yrItXzSxgTwQGdjPXQ2/6S9IXsMQojQgScgrjin3yJPbE+Lw6/bxVb X-Received: by 2002:a05:622a:1981:b0:3dc:483f:9c82 with SMTP id u1-20020a05622a198100b003dc483f9c82mr36684519qtc.0.1680191832483; Thu, 30 Mar 2023 08:57:12 -0700 (PDT) X-Google-Smtp-Source: AK7set+XjaORt6GiFu74wzWerLNgGw4I0eI596quziToVBJF2U76yQS3mN30JraI0EQ6rxzmNnxCxA== X-Received: by 2002:a05:622a:1981:b0:3dc:483f:9c82 with SMTP id u1-20020a05622a198100b003dc483f9c82mr36684482qtc.0.1680191832185; Thu, 30 Mar 2023 08:57:12 -0700 (PDT) Received: from x1n.redhat.com (bras-base-aurron9127w-grc-40-70-52-229-124.dsl.bell.ca. [70.52.229.124]) by smtp.gmail.com with ESMTPSA id o10-20020a05620a0d4a00b0074281812276sm13059380qkl.97.2023.03.30.08.57.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 08:57:10 -0700 (PDT) From: Peter Xu To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: peterx@redhat.com, Mike Kravetz , Andrew Morton , Andrea Arcangeli , Mike Rapoport , Axel Rasmussen , Nadav Amit , Leonardo Bras Soares Passos , David Hildenbrand , linux-stable Subject: [PATCH 01/29] Revert "userfaultfd: don't fail on unrecognized features" Date: Thu, 30 Mar 2023 11:56:39 -0400 Message-Id: <20230330155707.3106228-2-peterx@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230330155707.3106228-1-peterx@redhat.com> References: <20230330155707.3106228-1-peterx@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Rspam-User: X-Rspamd-Queue-Id: BB3D28001F X-Rspamd-Server: rspam01 X-Stat-Signature: mjazshdxacs6bqnmgcr333kbpmuyxps1 X-HE-Tag: 1680191839-252597 X-HE-Meta: U2FsdGVkX1/rAPROa6/xR6Dcv5wnLY614kZViqIl9mEGxHoWBZA/yxjJNWpgBaqV2DZY62drSW0ro/NZJ9Wy47X7q18Fy/LIGZWctLDYWirOvjs8eZaUL8syy0/vfz0tIg8Np2ad6K3I8SSjRIIU1Ybv7zqGwT1OebE9dcvCKePYf9L9mH9XsPyKE8OTaJoGf1zOJdYQmfO6QhNRM6i8WQX0uCov2RHHDVu8WgU5hU7MRHdVPSqnkVvoeBGP5zEOuYNE//oNH6uUN/9fetaqkAS6uOPalO8dmnSUA93sprLefujcgGBLzZ//Tq96IcQ6qHbDfAXZxVPceX2RcMj5mDVPXhg73pmUOeoz2Bb6/N+iY18bwzpQXQc4p0cyE0OBW4/0Dq+d2wZ2xFNZey04rRg2QF5YZ2w0EXSEPaPrZDpdOiqkI3m8jgQ77HDhkSkgJoUnYjRBf77ceuFg6wKZD8KmltbsKQSxLyIaBCmsxkDdRfgQ5ktDqfzgdSD6OLEERnYIdzU0YyMrgpz42wnyS5oPGjT7ZKLfYSnbVhOtwmG4Z21xYRncjSn+AX4xb8AreXfFTLGmNFrHqH79uBO0TnPx1uDLWdJjUQN62QTjsjKzyAw91WKZuN59nkV+IXmQPPUVu15/eJrp6ZOLNPSvOKjNdFT8RDizq83PTlUyzk5acSoZqelBy4Bxw/LIF45VvOQ3Fe+6q2XV4KbDxYr0lwpmLI6sU3jJux7UQXAs3sXPhOW3+uryNaQznry4hdlNzOXDg90PZeTza6WfLqSepI2qy9i2dx37sXJPVr+ArhhT5TuykknGOFyx7PODSVNa1lf5Rf9a6X8FjgmEZXXlicREgWkvCWEoFnfBxWXuma3LS51hN5FhE/VV6EbgoNaWMxv1AMs6iKW2PvSBuRfY/bUyKUMgNybwRPbvovIdSCztjWmrdCzuDjwdLXj4zflCC02yX/c5+6ivXSYQutF GFMro+pi Qi7i7OEH5ydqwdZbVi/472WnYLYMpHHUKrmePGpyy+XNVE7Q8gMMRpN95QXZRUTMfeLjQfnWyqD+nsb4hn2v1NE7tPW4q0IEjyT3a6b5P2JOXGLJH5Gw84GZGPRDIJf9ApaVWpnDtmYuDDaU5cY6tgD7SQEkBx9Fc3pfIMFR2XybNIp/hoqV7niCIXmykvakY/LvJ2KnV2iPvYQSRBBCTY5NOd6DeaWjJW/GNYu93qm/eZg/oplDrxjgh/QxRJWHJTq9OI+5kCZkuAl15zQLD9JT2WkWLw8JhsbkEoQ5v0vfQAzWfA4fWLLofzZj4kYfMvGA2jhvWlvmFt4wN+bGZBxhnh7y/ogxoxg1x1r+rB/BU3/4f1Obor7340LeXJhGoC1CAyM68POrh5L04Nf9VfwaKkdTIjTCYo3MJSuNDns7co6DHGtMwilIulatW8lCCDvzWKE5in1D5ncwq6xdk6z/8yxZ508LpsJH9Uh/E13KMb8B8D1KOQuMdODB/cd6W8O1MhJThObdt/GLSNTxf0A/HFgm/+hsIfzqA7TH/LBM2cST2Dtd3lzKYRw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: This is a proposal to revert commit 914eedcb9ba0ff53c33808. I found this when writting a simple UFFDIO_API test to be the first unit test in this set. Two things breaks with the commit: - UFFDIO_API check was lost and missing. According to man page, the kernel should reject ioctl(UFFDIO_API) if uffdio_api.api != 0xaa. This check is needed if the api version will be extended in the future, or user app won't be able to identify which is a new kernel. - Feature flags checks were removed, which means UFFDIO_API with a feature that does not exist will also succeed. According to the man page, we should (and it makes sense) to reject ioctl(UFFDIO_API) if unknown features passed in. Link: https://lore.kernel.org/r/20220722201513.1624158-1-axelrasmussen@google.com Cc: Axel Rasmussen Cc: linux-stable Signed-off-by: Peter Xu Acked-by: David Hildenbrand --- fs/userfaultfd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 8395605790f6..3b2a41c330e6 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -1977,8 +1977,10 @@ static int userfaultfd_api(struct userfaultfd_ctx *ctx, ret = -EFAULT; if (copy_from_user(&uffdio_api, buf, sizeof(uffdio_api))) goto out; - /* Ignore unsupported features (userspace built against newer kernel) */ - features = uffdio_api.features & UFFD_API_FEATURES; + features = uffdio_api.features; + ret = -EINVAL; + if (uffdio_api.api != UFFD_API || (features & ~UFFD_API_FEATURES)) + goto err_out; ret = -EPERM; if ((features & UFFD_FEATURE_EVENT_FORK) && !capable(CAP_SYS_PTRACE)) goto err_out;