Received: by 10.223.185.116 with SMTP id b49csp422886wrg; Fri, 16 Feb 2018 01:04:13 -0800 (PST) X-Google-Smtp-Source: AH8x226Oqt8PVscY1gGgyr32/PWlGWOxwbyItdj2w3U29bq6b4hg/s8X41QlaorPR197ULqdF7Cb X-Received: by 10.101.85.204 with SMTP id k12mr4733726pgs.40.1518771853580; Fri, 16 Feb 2018 01:04:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518771853; cv=none; d=google.com; s=arc-20160816; b=pR68P1dUJp99Wi4gX86RXxCWigYjPkyiBPjgGSa6N47AlvpYgo8B7Vk21wlzOJVVC4 GQ+v7CkNn8lvhvMgYXatvJOGTFFDl4Ku9o5VAdx2rTv3li+40I4cVOdTv3XPV+YQrnBF zucsHgAygI6y1WxKoZ6by9nR5n9VpG5KYUYih37Ws6nbCne+4JDGXC9ojh9gaGc0KIqI WUTgTsS3UTd7UzZ9ApRPmDBhtl6XIGk0n16xkilEoUNxrUgFcmirJsuvNOKmFKG0QlN7 c668l9VSSK/d7tpzn22KgFAS7h75Sg1emvrqTaWGGOvQLNYsMjy3JL9vmKxLs8RB8l1o XF1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=lCgmNMD1YQXuCD9hiSf2m8U/Y6gYjna8trFRRK8pROI=; b=dOZ4/KLqu9pT94B/Zd+8PYW+ZW3/pvrEhdlC+JspXHpPnsEUKL8DiVGuM8bPYuPn1h rerV+1rbVrlY6nXpeCKzQJ5qB6XUwD5dX6BD6VRnTLOXhDldQDGtSILvPvl6xV/4bSLI bH2CzHZNzFpXjyOjdfZL3cdE+pYGfc7rN7lKDQG3JQxs1WwhBOv8Yvppcmz/v2IkKJh5 TU8sBwjL35zc2HBms/VxFVWCYTOAFcABdzKvUgkIPv4GUWiQLEgLPACCSzoBOJuZ29o5 M59fcNQIHIhoqB0UFYk9AueIfhgsGbPS2LOBGUbUycyHC+a5lPEKGZOru+RAk4jGRHcd HfGg== 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 124si1516846pff.20.2018.02.16.01.03.58; Fri, 16 Feb 2018 01:04:13 -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 S1426017AbeBOQeb (ORCPT + 99 others); Thu, 15 Feb 2018 11:34:31 -0500 Received: from smtp2.provo.novell.com ([137.65.250.81]:54071 "EHLO smtp2.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1425903AbeBOQe2 (ORCPT ); Thu, 15 Feb 2018 11:34:28 -0500 Received: from linux-n805.suse.de (prv-ext-foundry1int.gns.novell.com [137.65.251.240]) by smtp2.provo.novell.com with ESMTP (TLS encrypted); Thu, 15 Feb 2018 09:34:24 -0700 From: Davidlohr Bueso To: akpm@linux-foundation.org Cc: mhocko@kernel.org, mtk.manpages@gmail.com, robert.kettler@outlook.com, manfred@colorfullife.com, ebiederm@xmission.com, keescook@chromium.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, dave@stgolabs.net Subject: [PATCH -next v2 0/3] sysvipc: introduce STAT_ANY commands Date: Thu, 15 Feb 2018 08:24:55 -0800 Message-Id: <20180215162458.10059-1-dave@stgolabs.net> X-Mailer: git-send-email 2.13.6 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes from v1 (https://lwn.net/Articles/747225/): - Renamed cmds to STAT_ANY, instead of STAT_ALL (per Eric). - Added Robert's reported-by tag. - Added changes for smack lsm. Hi, The following patches adds the discussed[1] new command for shm as well as for sems and msq as they are subject to the same discrepancies for ipc object permission checks between the syscall and via procfs. These new commands are justified in that (1) we are stuck with this semantics as changing syscall and procfs can break userland; and (2) some users can benefit from performance (for large amounts of shm segments, for example) from not having to parse the procfs interface. Once (if) merged, I will submit the necesary manpage updates. But I'm thinking something like: diff --git a/man2/shmctl.2 b/man2/shmctl.2 index 7bb503999941..bb00bbe21a57 100644 --- a/man2/shmctl.2 +++ b/man2/shmctl.2 @@ -41,6 +41,7 @@ .\" 2005-04-25, mtk -- noted aberrant Linux behavior w.r.t. new .\" attaches to a segment that has already been marked for deletion. .\" 2005-08-02, mtk: Added IPC_INFO, SHM_INFO, SHM_STAT descriptions. +.\" 2018-02-13, dbueso: Added SHM_STAT_ANY description. .\" .TH SHMCTL 2 2017-09-15 "Linux" "Linux Programmer's Manual" .SH NAME @@ -242,6 +243,18 @@ However, the argument is not a segment identifier, but instead an index into the kernel's internal array that maintains information about all shared memory segments on the system. +.TP +.BR SHM_STAT_ANY " (Linux-specific)" +Return a +.I shmid_ds +structure as for +.BR SHM_STAT . +However, the +.I shm_perm.mode +is not checked for read access for +.IR shmid , +resembing the behaviour of +/proc/sysvipc/shm. .PP The caller can prevent or allow swapping of a shared memory segment with the following \fIcmd\fP values: @@ -287,7 +300,7 @@ operation returns the index of the highest used entry in the kernel's internal array recording information about all shared memory segments. (This information can be used with repeated -.B SHM_STAT +.B SHM_STAT/SHM_STAT_ANY operations to obtain information about all shared memory segments on the system.) A successful @@ -328,7 +341,7 @@ isn't accessible. \fIshmid\fP is not a valid identifier, or \fIcmd\fP is not a valid command. Or: for a -.B SHM_STAT +.B SHM_STAT/SHM_STAT_ANY operation, the index value specified in .I shmid referred to an array slot that is currently unused. Thanks! [1] https://lkml.org/lkml/2017/12/19/220 *** BLURB HERE *** Davidlohr Bueso (3): ipc/shm: introduce shmctl(SHM_STAT_ANY) ipc/sem: introduce semctl(SEM_STAT_ANY) ipc/msg: introduce msgctl(MSG_STAT_ANY) include/uapi/linux/msg.h | 1 + include/uapi/linux/sem.h | 1 + include/uapi/linux/shm.h | 5 +++-- ipc/msg.c | 17 ++++++++++++----- ipc/sem.c | 17 ++++++++++++----- ipc/shm.c | 23 ++++++++++++++++++----- security/selinux/hooks.c | 3 +++ security/smack/smack_lsm.c | 3 +++ 8 files changed, 53 insertions(+), 17 deletions(-) -- 2.13.6