linux-security-module.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: ebiederm@xmission.com, keescook@chromium.org, yzaikin@google.com,
	john.johansen@canonical.com, paul@paul-moore.com,
	jmorris@namei.org, serge@hallyn.com, luto@amacapital.net,
	wad@chromium.org, dverkamp@chromium.org, paulmck@kernel.org,
	baihaowen@meizu.com, frederic@kernel.org, jeffxu@google.com,
	ebiggers@kernel.org, tytso@mit.edu, guoren@kernel.org
Cc: j.granados@samsung.com, zhangpeng362@huawei.com,
	tangmeng@uniontech.com, willy@infradead.org,
	nixiaoming@huawei.com, sujiaxun@uniontech.com,
	patches@lists.linux.dev, linux-fsdevel@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-kernel@vger.kernel.org,
	Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 01/11] proc_sysctl: update docs for __register_sysctl_table()
Date: Thu,  2 Mar 2023 12:28:16 -0800	[thread overview]
Message-ID: <20230302202826.776286-2-mcgrof@kernel.org> (raw)
In-Reply-To: <20230302202826.776286-1-mcgrof@kernel.org>

Update the docs for __register_sysctl_table() to make it clear no child
entries can be passed. When the child is true these are non-leaf entries
on the ctl table and sysctl treats these as directories. The point to
__register_sysctl_table() is to deal only with directories not part of
the ctl table where thay may riside, to be simple and avoid recursion.

While at it, hint towards using long on extra1 and extra2 later.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 fs/proc/proc_sysctl.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 5851eb5bc726..1df0beb50dbe 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -1287,7 +1287,7 @@ static int insert_links(struct ctl_table_header *head)
  * __register_sysctl_table - register a leaf sysctl table
  * @set: Sysctl tree to register on
  * @path: The path to the directory the sysctl table is in.
- * @table: the top-level table structure
+ * @table: the top-level table structure without any child
  *
  * Register a sysctl table hierarchy. @table should be a filled in ctl_table
  * array. A completely 0 filled entry terminates the table.
@@ -1308,9 +1308,12 @@ static int insert_links(struct ctl_table_header *head)
  * proc_handler - the text handler routine (described below)
  *
  * extra1, extra2 - extra pointers usable by the proc handler routines
+ * XXX: we should eventually modify these to use long min / max [0]
+ * [0] https://lkml.kernel.org/87zgpte9o4.fsf@email.froward.int.ebiederm.org
  *
  * Leaf nodes in the sysctl tree will be represented by a single file
- * under /proc; non-leaf nodes will be represented by directories.
+ * under /proc; non-leaf nodes (where child is not NULL) are not allowed,
+ * sysctl_check_table() verifies this.
  *
  * There must be a proc_handler routine for any terminal nodes.
  * Several default handlers are available to cover common cases -
@@ -1352,7 +1355,7 @@ struct ctl_table_header *__register_sysctl_table(
 
 	spin_lock(&sysctl_lock);
 	dir = &set->dir;
-	/* Reference moved down the diretory tree get_subdir */
+	/* Reference moved down the directory tree get_subdir */
 	dir->header.nreg++;
 	spin_unlock(&sysctl_lock);
 
@@ -1369,6 +1372,11 @@ struct ctl_table_header *__register_sysctl_table(
 		if (namelen == 0)
 			continue;
 
+		/*
+		 * namelen ensures if name is "foo/bar/yay" only foo is
+		 * registered first. We traverse as if using mkdir -p and
+		 * return a ctl_dir for the last directory entry.
+		 */
 		dir = get_subdir(dir, name, namelen);
 		if (IS_ERR(dir))
 			goto fail;
-- 
2.39.1


  reply	other threads:[~2023-03-02 20:29 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-02 20:28 [PATCH 00/11] sysctl: deprecate register_sysctl_paths() Luis Chamberlain
2023-03-02 20:28 ` Luis Chamberlain [this message]
2023-03-02 20:28 ` [PATCH 02/11] proc_sysctl: move helper which creates required subdirectories Luis Chamberlain
2023-03-02 22:56   ` John Johansen
2023-03-02 20:28 ` [PATCH 03/11] sysctl: clarify register_sysctl_init() base directory order Luis Chamberlain
2023-03-02 20:28 ` [PATCH 04/11] apparmor: simplify sysctls with register_sysctl_init() Luis Chamberlain
2023-03-02 20:42   ` Georgia Garcia
2023-03-02 22:51   ` John Johansen
2023-03-02 20:28 ` [PATCH 05/11] loadpin: simplify sysctls use with register_sysctl() Luis Chamberlain
2023-03-02 22:56   ` Kees Cook
2023-03-02 22:58   ` John Johansen
2023-03-02 20:28 ` [PATCH 06/11] yama: simplfy sysctls " Luis Chamberlain
2023-03-02 22:56   ` Kees Cook
2023-03-02 20:28 ` [PATCH 07/11] seccomp: simplify sysctls with register_sysctl_init() Luis Chamberlain
2023-03-02 22:56   ` Kees Cook
2023-03-02 20:28 ` [PATCH 08/11] kernel: pid_namespace: simplify sysctls with register_sysctl() Luis Chamberlain
2023-03-02 23:13   ` Jeff Xu
2023-03-09 22:11     ` Luis Chamberlain
2023-03-09 22:27       ` Andrew Morton
2023-03-19 20:47         ` Luis Chamberlain
2023-03-10  4:14       ` Eric Biggers
2023-03-10  7:00         ` Luis Chamberlain
2023-03-02 20:28 ` [PATCH 09/11] fs-verity: " Luis Chamberlain
2023-03-07 19:47   ` Eric Biggers
2023-03-02 20:28 ` [PATCH 10/11] csky: simplify alignment sysctl registration Luis Chamberlain
2023-03-02 20:28 ` [PATCH 11/11] proc_sysctl: deprecate register_sysctl_paths() Luis Chamberlain
2023-03-10  4:17   ` Eric Biggers
2023-03-10  7:01     ` Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230302202826.776286-2-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=apparmor@lists.ubuntu.com \
    --cc=baihaowen@meizu.com \
    --cc=dverkamp@chromium.org \
    --cc=ebiederm@xmission.com \
    --cc=ebiggers@kernel.org \
    --cc=frederic@kernel.org \
    --cc=guoren@kernel.org \
    --cc=j.granados@samsung.com \
    --cc=jeffxu@google.com \
    --cc=jmorris@namei.org \
    --cc=john.johansen@canonical.com \
    --cc=keescook@chromium.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=nixiaoming@huawei.com \
    --cc=patches@lists.linux.dev \
    --cc=paul@paul-moore.com \
    --cc=paulmck@kernel.org \
    --cc=serge@hallyn.com \
    --cc=sujiaxun@uniontech.com \
    --cc=tangmeng@uniontech.com \
    --cc=tytso@mit.edu \
    --cc=wad@chromium.org \
    --cc=willy@infradead.org \
    --cc=yzaikin@google.com \
    --cc=zhangpeng362@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).