Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp457298ybl; Sat, 18 Jan 2020 04:09:37 -0800 (PST) X-Google-Smtp-Source: APXvYqwTAjJpc3lv+Ivx49upPBcztfAEh3Iljl2HMy/GPqHYG46jBfZeyeBrQGxACwYVyIOK1LTI X-Received: by 2002:a05:6830:128e:: with SMTP id z14mr9446450otp.184.1579349377003; Sat, 18 Jan 2020 04:09:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579349376; cv=none; d=google.com; s=arc-20160816; b=0yzyrhyg9+Yff0r5TMe5w6vtFgt0I+cyco3DdtfKBw3hKW/7G1pujsOcHoXoaAtkBa JCXLassNAH1XY49b/RGcEDwJGISaci9oZBd3Z63BrDZjnrYFR4V7hwVoQ015l1/8PCy2 4VMVm5TBLQQH+JvkbCj7D+V/1dZjU7whHQ99vyxvzF4tAsL6XtkXFohvcnARbx8Srz13 L4hvCKDvZL2VvqFfLjvMOAl1IilY3U3V23q63SwGQrHzFN/cOEukCYlC0OfIErjV4Usk hLhnSRymhnmz/1n+fURC7t+IUD+Snc12Np+3VusvEMFs8P3VLkF3zTo7gxhJj8OhBH3L Ds6A== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=JGPRqIsRWFSWARpD2Q5+fIzSPQCskAdlgL90pNO6sAc=; b=UfN8wmKew4IowPxj71zwHsTgZNZ09+UrDgliNxYhe5v+X7Zm+iOlTLLCcOwXF7QmIl ZggZmK3UPJryhBvoBjjnuQhKVA4L8NhmPNOE0SKCt3U1YvAtbAjLioK2BO9CJEzgn0m5 a+QGyxUg7rfwboLF0qmcIEoQIin0hdx1UyJxmIk3ona49pw4dnCTlIpjBDzX9l92EBAU Hrii+qRs17uUmf5IU3d3cvwlbEywT4CsLRygOGyx/MVq2eJVaJ41Yyz0uEjM6FyJTR71 7/9C6vLP5ZmrCQ5lwiuBKMkUSjUXJYTVSule8rNNyhShEMeA4UWQblvxR1idiR3HsOgz 5log== ARC-Authentication-Results: i=1; mx.google.com; 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 p7si16855336ota.299.2020.01.18.04.09.23; Sat, 18 Jan 2020 04:09:36 -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; 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 S1728760AbgARMIY (ORCPT + 99 others); Sat, 18 Jan 2020 07:08:24 -0500 Received: from mout-p-202.mailbox.org ([80.241.56.172]:8772 "EHLO mout-p-202.mailbox.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727118AbgARMIY (ORCPT ); Sat, 18 Jan 2020 07:08:24 -0500 Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:105:465:1:1:0]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 480Gsx0gfnzQlC0; Sat, 18 Jan 2020 13:08:21 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter02.heinlein-hosting.de (spamfilter02.heinlein-hosting.de [80.241.56.116]) (amavisd-new, port 10030) with ESMTP id nGUXfNiBnQgK; Sat, 18 Jan 2020 13:08:17 +0100 (CET) From: Aleksa Sarai To: Alexander Viro , Jeff Layton , "J. Bruce Fields" , Shuah Khan Cc: Aleksa Sarai , Florian Weimer , David Laight , Christian Brauner , quae@daurnimator.com, dev@opencontainers.org, containers@lists.linux-foundation.org, libc-alpha@sourceware.org, linux-api@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH v3 0/2] openat2: minor uapi cleanups Date: Sat, 18 Jan 2020 23:07:58 +1100 Message-Id: <20200118120800.16358-1-cyphar@cyphar.com> In-Reply-To: <20200115144831.GJ8904@ZenIV.linux.org.uk> References: <20200115144831.GJ8904@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Patch changelog: v3: * Merge changes into the original patches to make Al's life easier. [Al Viro] v2: * Add include to openat2.h. [Florian Weimer] * Move OPEN_HOW_SIZE_* constants out of UAPI. [Florian Weimer] * Switch from __aligned_u64 to __u64 since it isn't necessary. [David Laight] v1: While openat2(2) is still not yet in Linus's tree, we can take this opportunity to iron out some small warts that weren't noticed earlier: * A fix was suggested by Florian Weimer, to separate the openat2 definitions so glibc can use the header directly. I've put the maintainership under VFS but let me know if you'd prefer it belong ot the fcntl folks. * Having heterogenous field sizes in an extensible struct results in "padding hole" problems when adding new fields (in addition the correct error to use for non-zero padding isn't entirely clear ). The simplest solution is to just copy clone(3)'s model -- always use u64s. It will waste a little more space in the struct, but it removes a possible future headache. This patch is intended to replace the corresponding patches in Al's #work.openat2 tree (and *will not* apply on Linus' tree). @Al: I will send some additional patches later, but they will require proper design review since they're ABI-related features (namely, adding a way to check what features a syscall supports as I outlined in my talk here[1]). [1]: https://youtu.be/ggD-eb3yPVs Aleksa Sarai (2): open: introduce openat2(2) syscall selftests: add openat2(2) selftests CREDITS | 4 +- MAINTAINERS | 1 + arch/alpha/kernel/syscalls/syscall.tbl | 1 + arch/arm/tools/syscall.tbl | 1 + arch/arm64/include/asm/unistd.h | 2 +- arch/arm64/include/asm/unistd32.h | 2 + arch/ia64/kernel/syscalls/syscall.tbl | 1 + arch/m68k/kernel/syscalls/syscall.tbl | 1 + arch/microblaze/kernel/syscalls/syscall.tbl | 1 + arch/mips/kernel/syscalls/syscall_n32.tbl | 1 + arch/mips/kernel/syscalls/syscall_n64.tbl | 1 + arch/mips/kernel/syscalls/syscall_o32.tbl | 1 + arch/parisc/kernel/syscalls/syscall.tbl | 1 + arch/powerpc/kernel/syscalls/syscall.tbl | 1 + arch/s390/kernel/syscalls/syscall.tbl | 1 + arch/sh/kernel/syscalls/syscall.tbl | 1 + arch/sparc/kernel/syscalls/syscall.tbl | 1 + arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 1 + arch/xtensa/kernel/syscalls/syscall.tbl | 1 + fs/open.c | 147 +++-- include/linux/fcntl.h | 16 +- include/linux/syscalls.h | 3 + include/uapi/asm-generic/unistd.h | 5 +- include/uapi/linux/fcntl.h | 2 +- include/uapi/linux/openat2.h | 39 ++ tools/testing/selftests/Makefile | 1 + tools/testing/selftests/openat2/.gitignore | 1 + tools/testing/selftests/openat2/Makefile | 8 + tools/testing/selftests/openat2/helpers.c | 109 ++++ tools/testing/selftests/openat2/helpers.h | 106 ++++ .../testing/selftests/openat2/openat2_test.c | 312 +++++++++++ .../selftests/openat2/rename_attack_test.c | 160 ++++++ .../testing/selftests/openat2/resolve_test.c | 523 ++++++++++++++++++ 34 files changed, 1418 insertions(+), 39 deletions(-) create mode 100644 include/uapi/linux/openat2.h create mode 100644 tools/testing/selftests/openat2/.gitignore create mode 100644 tools/testing/selftests/openat2/Makefile create mode 100644 tools/testing/selftests/openat2/helpers.c create mode 100644 tools/testing/selftests/openat2/helpers.h create mode 100644 tools/testing/selftests/openat2/openat2_test.c create mode 100644 tools/testing/selftests/openat2/rename_attack_test.c create mode 100644 tools/testing/selftests/openat2/resolve_test.c -- 2.24.1